0
我使用dotnet核心v2.0.0。我已經遷移我的認證以下這篇文章:https://go.microsoft.com/fwlink/?linkid=845470用戶未通過外部登錄身份驗證
目前,它看起來像這樣:
public void ConfigureServices(IServiceCollection services)
{
services
.AddDbContext<DatabaseContext>()
.AddIdentity<AppUser, IdentityRole>()
.AddEntityFrameworkStores<DatabaseContext>()
.AddDefaultTokenProviders();
services
.AddAuthentication()
.AddFacebook(o => {
o.AppId = "my id";
o.AppSecret = "my secret";
});
services
.AddAuthorization()
.AddRouting()
.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider serviceProvider)
{
app.UseWebSockets();
app.UseAuthentication();
ServiceProvider = serviceProvider;
Routing.AddRoutes(app);
app.UseStaticFiles();
app.UseMvc();
}
而且回調:
[Route("api/account/external")]
public async Task<IActionResult> GetExternalLogin(string provider, string error = null)
{
if (error != null)
{
return BadRequest(Uri.EscapeDataString(error));
}
// info is null
// but HttpContext.Request.Cookies does contain a cookie
var info = await _signInManager.GetExternalLoginInfoAsync();
....
}
基於表單的註冊和認證工作。當我嘗試使用Facebook登錄時,我被重定向到登錄窗口,可以輸入我的密碼,然後被重定向回我的應用程序。
創建一個名爲Identity.External的cookie並通過請求發送。但我的用戶沒有通過身份驗證,我也沒有任何要求。爲什麼不使用cookie的身份?如果我無法通過SignInManager訪問它,有沒有辦法通過解析cookie來讀取提供者密鑰?