我启用了IdentityServer,使用隐式流程对Facebook进行身份验证。
现在当我通过身份验证时,我会获得一个id值作为主题。像502967fe0125ce3ff75050ef7b83fd68
我用它作为用户ID来存储用户相关的数据。但有时候,主题的内容似乎会发生变化,我会得到不同的身份。
我是否错过理解主题的概念。是否预计它正在变质?
不应该是主题id常数? 我应该使用哪些信息来存储用户相关数据?
这是我在身份服务器中配置facebook提供程序的方式:
public static void Configure(IAppBuilder app, string signInAsType)
{
var fb = new FacebookAuthenticationOptions
{
AuthenticationType = "Facebook",
Caption = "Facebook",
SignInAsAuthenticationType = signInAsType,
AppId = myAppId,
AppSecret = mySecret
};
app.UseFacebookAuthentication(fb);
}
这是网站中的客户端配置
JwtSecurityTokenHandler.InboundClaimTypeMap = new Dictionary<string, string>();
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "cookies"
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
AuthenticationType = "oidc",
SignInAsAuthenticationType = "cookies",
ClientId = "website",
Authority = identServer,
RedirectUri = "http://localhost/pluto/",
ResponseType = "id_token token",
Scope = "openid profile email warehouseapi"
}
答案 0 :(得分:1)
子声明表示STS上下文中用户的唯一标识符。
这通常意味着在用户首次登录时创建一个新子。然后该子与外部登录(发行者名称和外部子)相关联并重新使用。
答案 1 :(得分:0)
所以对我而言,这是关闭的,但仍有一个问题,这是一个可取的行为。
是否更有可能将facebook id放入主题?