Я хочу расширить эту функциональность, чтобы пользователи могли входить в систему с помощью 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
};
});
Код: Выделить всё
[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:< /p>
https://localhost/signin-google?state=...
На этом этапе приложение не обрабатывает запрос должным образом, и я сталкиваюсь с проблемами во время перенаправление:

Любая помощь в решении этой проблемы Буду очень признателен!
Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/792 ... p-net-core