c# - 在 ASP.NET Core 中配置 return_type 字段
问题描述
我正在使用该AuthenticationBuilder.AddOAuth(...)
方法将 OAuth 功能添加到我的站点。这对于我要连接的一项服务非常有效,但对于第二项服务则不然。
显然,在重定向到授权端点期间,第二个服务需要将 URL 参数return_type
设置为token
,但我的配置将其设置为code
。到目前为止,我还没有找到OAuthOptions
决定这个参数的部分。
为方便起见,我将添加我正在使用的代码:
authBuilder.AddOAuth(Identifier, options =>
{
options.ClientId = ClientId;
options.ClientSecret = ClientSecret;
options.CallbackPath = new PathString($"/signin-{Identifier}");
options.AccessDeniedPath = new PathString("/");
options.AuthorizationEndpoint = Domain + AuthorizationEndpoint;
options.TokenEndpoint = Domain + TokenEndpoint;
options.UserInformationEndpoint = Domain + UserInfoEndpoint;
options.ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, NameIdentifierKey);
options.ClaimActions.MapJsonKey(ClaimTypes.Name, NameKey);
options.SaveTokens = true;
options.Events = new OAuthEvents
{
OnCreatingTicket = async context =>
{
var request = new HttpRequestMessage(HttpMethod.Get, context.Options.UserInformationEndpoint);
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", context.AccessToken);
var response = await context.Backchannel.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, context.HttpContext.RequestAborted);
response.EnsureSuccessStatusCode();
var user = await JsonDocument.ParseAsync(await response.Content.ReadAsStreamAsync());
context.RunClaimActions(user.RootElement);
}
};
options.Scope.Add(Scope);
});
解决方案
推荐阅读
- bash - Bash sed 命令给了我“无效的命令代码”。
- docker - Docker - Can´t change default password of phpmyadmin
- python - “charmap”编解码器无法在位置 0 编码字符“\u010c”:字符映射到
MariaDB 和 SQLAlchemy - google-analytics - 获取自定义维度总数
- pytorch - Pytorch模型比纯python函数慢10倍
- r - 如何在str_count中“解开”像[:digit:]这样的正则表达式助手?
- html - HTML/CSS 动画标题元素
- flutter - Flutter 表单中的密码和密码确认
- python - 数据抓取时,Recaptcha 检查失败
- html - 使连续的两个 div 类看起来更近