Asp.net core Facebook OAuth索赔实体在创建票证后丢失
我正在将Facebook OAuth添加到现有的AspNetCore应用程序中。我的“使用Facebook登录”按钮似乎做了所有正确的事情,但在我重定向回另一个页面后,我的Asp.net core Facebook OAuth索赔实体在创建票证后丢失,asp.net-core,asp.net-identity,facebook-oauth,Asp.net Core,Asp.net Identity,Facebook Oauth,我正在将Facebook OAuth添加到现有的AspNetCore应用程序中。我的“使用Facebook登录”按钮似乎做了所有正确的事情,但在我重定向回另一个页面后,我的User.Identity已恢复为未经身份验证的用户,并且所有索赔信息都消失了 我的startup.cs代码: public void ConfigureServices(IServiceCollection services) { // many things... services .Add
User.Identity
已恢复为未经身份验证的用户,并且所有索赔信息都消失了
我的startup.cs代码:
public void ConfigureServices(IServiceCollection services)
{
// many things...
services
.AddAuthentication("AuthToken") // original authentication handler for app
.AddCookie("Cookies")
.AddFacebook("Facebook", options =>
{
options.SignInScheme = "Cookies";
options.AppId = "sekrut123";
options.AppSecret = "moresekrut123123";
options.SaveTokens = true;
options.Scope.Add("email");
// for debugging:
options.Events = new OAuthEvents
{
OnCreatingTicket = context =>
{
// in here, context.Principal.Identity is Authenticated
// the facebook email and other claims are present
// life is good...
return Task.Completed;
}
};
})
.AddAuthTokenHandler(); // original auth token handler for app
// bunch of stuff
}
但是在经历了创建罚单的过程后,我的身份信息消失了,我又回到了一个未经身份验证的匿名用户的身份。怎么搞的?
我是否应该在代码中寻找一些东西来重置我的用户身份?进一步的工作:通过chrome://flags 我似乎可以得到认证工作;Cookie在所有东西之间传输和转发。但是,User.Identity仍然没有经过身份验证,并且没有包含所有Facebook声明。