Код: Выделить всё
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddAuthentication("cookie")
.AddCookie("cookie")
.AddOAuth("a", static opt =>
{
opt.UsePkce = true;
opt.SignInScheme = "cookie";
opt.ClientId = "12345";
opt.AuthorizationEndpoint = "https:///oauth2/v2.0/authorize";
opt.TokenEndpoint = "https:///oauth2/v2.0/token";
opt.ClientSecret = "secret";
opt.CallbackPath = "/";
// fill the Scope
opt.Scope.Clear();
opt.Scope.Add("openid");
opt.Scope.Add("offline_access");
opt.Scope.Add("https:///File.Read");
opt.Scope.Add("https:///File.Write");
opt.SaveTokens = true;
});
var app = builder.Build();
app.UseAuthentication();
app.MapGet("/", (
HttpContext ctx) => {
ctx.GetTokenAsync("access_token");
return ctx.User.Claims.Select(x => new{x.Type, x.Value}).ToList();
});
app.MapGet("/login", () => {return Results.Challenge(
new AuthenticationProperties(){ RedirectUri = "http://localhost:9001/" },
authenticationSchemes: new List() {"a"}); });
app.Run();
Ошибка конечной точки токена OAuth: valid_request;Description=AADB2C90084:
Публичные клиенты не должны отправлять client_secret, когда погашение
государственного гранта.
Мои вопросы:
Что может быть причиной этой ошибки и как это может быть улучшено?
Есть ли другой способ выполнить это требование?
Подробнее здесь: https://stackoverflow.com/questions/787 ... ny-account