在使用 facebook 进行身份验证后,我试图通过 IAuthSession 获取用户数据,当我尝试使用返回 AuthUserSession(实现 IAuthSession)的Request.GetSession(true)获取用户时,我得到了部分数据子集,如下所示:
我正在尝试在服务方法中使用它
[ClientCanSwapTemplates]
[DefaultView("dashboard")]
public DashboardResponse Get(FacebookRequest userRequest)
{
var user1 = Request.GetSession(true);
return new DashboardResponse();
}
我已将身份验证提供程序添加到我的 apphost 中,如下所示:
Plugins.Add(new AuthFeature(() => new AuthUserSession(), new IAuthProvider[] {
new FacebookAuthProvider(appSettings),
new TwitterAuthProvider(appSettings),
new BasicAuthProvider(appSettings),
new GoogleOpenIdOAuthProvider(appSettings),
new LinkedInAuthProvider(appSettings),
new CredentialsAuthProvider()
}));
据我所知,facebookAuthProvider应该用以下信息填充 IAuthSession:
userSession.FacebookUserId = tokens.UserId ?? userSession.FacebookUserId;
userSession.FacebookUserName = tokens.UserName ?? userSession.FacebookUserName;
userSession.DisplayName = tokens.DisplayName ?? userSession.DisplayName;
userSession.FirstName = tokens.FirstName ?? userSession.FirstName;
userSession.LastName = tokens.LastName ?? userSession.LastName;
userSession.PrimaryEmail = tokens.Email ?? userSession.PrimaryEmail ?? userSession.Email;
我错过了什么步骤?