Как интегрировать вход в Google с аутентификацией JWT в ASP.NET Core?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как интегрировать вход в Google с аутентификацией JWT в ASP.NET Core?

Сообщение Anonymous »

Я работаю над проектом, в котором пользователи могут регистрироваться и входить в систему, используя свой адрес электронной почты, пароль, имя и другие данные. При входе в систему система генерирует токен JWT для аутентификации.
Я хочу расширить эту функциональность, чтобы пользователи могли входить в систему с помощью Google. После успешного входа в Google система должна обновить данные пользователя (например, адрес электронной почты и имя) в базе данных и сгенерировать токен JWT. Однако во время реализации я столкнулся с проблемами и подозреваю, что что-то не хватает в моей настройке.
Вот мой текущий код — конфигурация аутентификации:

Код: Выделить всё

builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = GoogleDefaults.AuthenticationScheme;
})
.AddGoogle(googleOptions =>
{
googleOptions.ClientId = builder.Configuration["Google:ClientID"];
googleOptions.ClientSecret = builder.Configuration["Google:ClientSecret"];
})
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["JWT:Key"])),
ValidateIssuer = true,
ValidIssuer = builder.Configuration["JWT:Issuer"],
ValidateAudience = true,
ValidAudience = builder.Configuration["JWT:Audience"],
ValidateLifetime = true,
ClockSkew = TimeSpan.Zero
};
});
Действия контроллера API:

Код: Выделить всё

[HttpGet("google-login")]
public IActionResult GoogleLogin()
{
var properties = new AuthenticationProperties
{
RedirectUri = Url.Action("GoogleCallback")
};
return Challenge(properties, GoogleDefaults.AuthenticationScheme);
}

[HttpGet("google-callback")]
public async Task GoogleCallback()
{
var result = await HttpContext.AuthenticateAsync();
if (!result.Succeeded)
return Unauthorized();

// Token Generation Logic
return Ok(token);
}
Проблема: при входе в Google после успешной аутентификации браузер перенаправляется на URL:

Код: Выделить всё

https://localhost/signin-google?state=...
На этом этапе приложение не обрабатывает запрос должным образом, и при перенаправлении возникают проблемы:
Изображение

Будем очень признательны за любую помощь в решении этой проблемы!
Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... p-net-core
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как интегрировать вход в Google с аутентификацией JWT в ASP.NET Core?
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Как интегрировать вход в Google с аутентификацией JWT в ASP.NET Core?
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Переключение метода аутентификации веб-API ASP.NET Core между JWT и оконной аутентификацией
    Anonymous » » в форуме C#
    0 Ответы
    40 Просмотры
    Последнее сообщение Anonymous
  • Переключение метода аутентификации веб-API ASP.NET Core между JWT и оконной аутентификацией
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»