为什么ServiceStack并不总是链接UserAuth和UserAuthDetails?



我正在与一些我认为ServiceStack会"开箱即用"的东西作斗争…

我有一个ServiceStack API,允许通过凭证,基本,谷歌OpenId和LinkedIn OAuth2进行身份验证。

从空UserAuth和UserAuthDetails表开始,我发现如果我:

  1. 启动我的应用程序并使用凭据登录
  2. 退出
  3. 使用Google OpenId auth登录

ServiceStack创建两个单独的UserAuth记录,而不是链接Google UserAuthDetail与凭据认证的UserAuth。尽管两个凭据在两个记录中显示相同的电子邮件地址,但仍然存在这种情况。

但是…如果我从一个空白数据库开始,并使用LinkedIn OAuth2重复步骤,我发现单个UserAuth记录与链接的UserAuthDetails记录一起创建。这就是我想让Google Auth做的。

有没有人能解释一下为什么会发生这种情况,以及我必须做些什么来确保谷歌认证不会创建一个新的UserAuth,如果已经有一个匹配的电子邮件地址?

ServiceStack合并当前认证用户会话的User Auth详细信息。也就是说,不在OpenId/OAuth提供程序返回的任何匹配值上。

如果您注销,那么您将结束当前用户会话,并且再次进行身份验证将表现得好像它是一个新的浏览器会话

相关内容

  • 没有找到相关文章

最新更新