WWhen我使用SocialBootstrapAPI项目创建了一个新的经典帐户,我在数据库中创建了一个新的UserAuth。
接下来,当我注销并尝试使用谷歌OpenID登录(使用与经典登录相同的电子邮件的谷歌帐户)而不是使用旧帐户时,它会创建一个新帐户:

这正常吗?如果不是,如何合并UserAuth?当我在自定义IUserAuthRepository中调试CreateOrMergeAuthSession时,userAuth总是一个新实例,因为带有authSession的GetUserAuth没有信息(电子邮件)来查找旧的经典UserAuth:
var userAuth = GetUserAuth(authSession, tokens) ?? new ServiceStack.ServiceInterface.Auth.UserAuth();提前感谢你的帮助,
发布于 2013-09-12 23:03:17
我不知道这是不是一个好的解决方案,但它是有效的:
我已经编辑了以下方法:
public ServiceStack.ServiceInterface.Auth.UserAuth GetUserAuth(IAuthSession authSession, IOAuthTokens tokens)
{
}我在令牌电子邮件上添加了一个控件:
if (tokens != null && !tokens.Email.IsNullOrEmpty())
{
var userAuth = GetUserAuthByUserName(tokens.Email);
if (userAuth != null) return userAuth;
}所以它使用google mail账户上的电子邮件来获取我的旧userAuth。
https://stackoverflow.com/questions/18757910
复制相似问题