scala - Scala securesocial:电子邮件注册用户的providerId?
问题描述
在securesocial(https://github.com/jaliss/securesocial)中,您必须覆盖
def findByEmailAndProvider(email: String, providerId: String): Future[Option[BasicProfile]]
类的方法UserService
(https://github.com/jaliss/securesocial/blob/master/module-code/app/securesocial/core/services/UserService.scala)
但是providerId
通过简单的电子邮件注册(不使用社交帐户)注册的用户是什么?
我没有发现providerId
文档或代码本身的内容的描述。我的理解是,它providerId
是一个类似“twitter”、“facebook”或“google”的字符串,用于标识用户用来连接的社交网络。
我应该为电子邮件注册用户使用代表我的 Web 应用程序(“myapp”或类似的东西)的任意字符串吗?
实际上,我想我什至不明白为什么providerId
是这个方法的参数。我看不出它在这种情况下的用途。如果用户使用电子邮件地址进行连接,是否已经知道他们没有通过 facebook/twitter/google 或其他方式进行连接?
谢谢你的帮助。
解决方案
我们使用 [userpass] 作为用户注册电子邮件的 providerId。根据我的理解,此方法将 providerId 作为参数,因为单个电子邮件可以有多个条目(即,用于不同的社交帐户和电子邮件注册)。当用户尝试通过某种方法(社交或电子邮件)登录时,您需要一种方法来区分数据库中的记录。例如,用户通过电子邮件注册并尝试通过 facebook 登录,那么这将帮助您识别该用户的 facebook 信息不存在,他首先需要连接他的 facebook 帐户。
推荐阅读
- html - 附加多个 div 并使其响应
- arduino - 当引脚模式应该为 HIGH 时,它始终为 LOW
- java - SAML getUnmarshaller(element) 返回 null
- php - 作曲家安装不起作用。连接被拒绝
- php - PHP:在接口中使用父类作为类型声明
- mysql - SQL查询如何显示给定开始时间和结束时间之间的变化
- c++ - std::array 派生类聚合初始化
- html - 锚标签正在破坏轮播滑块 - Bootstrap 4
- c# - ASP.NET Core 2.x - HttpClient api returns error 'Object reference not set to an instance of an object'
- python - 如何使用 miniconda 获得一个完全干净的 python 环境?