Я использую ASP.NET Core 2.0 Web API для создания приложения с аутентификацией.Я хочу войти, используя комбинацию «логин / пароль» и используя Facebook.Я использую токены JWT для авторизации.С Startup.cs
я вызываю метод расширения RegisterAuth
.
public static void RegisterAuth(this IServiceCollection services, AuthSettings authSettings)
{
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.SaveToken = true;
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = false,
ValidateLifetime = true,
ValidateIssuerSigningKey = false,
ValidIssuer = authSettings.Issuer,
ValidAudience = authSettings.Audience,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(authSettings.SecretKey))
};
})
.AddFacebook(facebookOptions =>
{
facebookOptions.AppId = authSettings.Facebook.AppId;
facebookOptions.AppSecret = authSettings.Facebook.AppSecret;
facebookOptions.SignInScheme = "Bearer";
});
}
В моем контроллере у меня есть 2 метода.Login
для комбинации "логин / пароль", которая работает и возвращает мне токен jwt.И SignIn
для facebook, который не работает.
[Route("SignIn/{provider}")]
public IActionResult SignIn(string provider)
{
return Challenge(new AuthenticationProperties(), provider);
}
SignIn
перенаправляет на страницу facebook, откуда после входа в нее выдает исключение.
InvalidOperationException: НетIAuthenticationSignInHandler настроен для обработки входа по схеме: Носитель
Поэтому, пожалуйста, помогите мне исправить Facebook Auth.Спасибо!