![](/img/trans.png)
[英]How to connect and listen to external websocket url using C# and ASP.Net Core 2.2
[英]How can I connect with an external authentication server with ASP.NET Core in C#
我正在尝试使用 Google API 对 ASP.NET Core 进行身份验证,以便能够访问人员 api。
我有以下代码:
services.AddAuthentication()
.AddOpenIdConnect(GoogleDefaults.AuthenticationScheme,
GoogleDefaults.DisplayName,
options =>
{
options.Authority = "https://accounts.google.com/o/oauth2/v2/auth";
options.ClientId = Configuration["Authentication:Google:ClientId"];
options.ClientSecret = Configuration["Authentication: Google:ClientSecret"];
options.ResponseType = OpenIdConnectResponseType.Code;
options.Scope.Add("openid");
options.Scope.Add("email");
options.CallbackPath = "/signin-google";
});
问题是我得到以下异常
处理请求时发生未处理的异常。
IOException:IDX20807:无法从以下位置检索文档:'[PII 已隐藏。 有关详细信息,请参阅 https://aka.ms/IdentityModel/PII。]'。 HttpResponseMessage: '[PII 已隐藏。 有关详细信息,请参阅 https://aka.ms/IdentityModel/PII。]', HttpResponseMessage.Content: '[PII 已隐藏。 有关详细信息,请参阅 https://aka.ms/IdentityModel/PII。]'
我该如何解决这个问题?
第二个问题:如何从 controller 访问访问令牌,以便能够向 API 用户发送请求?
最好的问候,迈克
[关于如何访问控制器中的用户]
您使用 JWT 令牌吗? 如果是这样,我访问它:
this.HttpContext.User;
然后,如果您还没有修改它,则 jwt 有效负载将分为几个声明。 在我的例子中,默认情况下令牌是有状态的(意味着其中包含用户信息)并且用户 ID 存储在第五个声明中
.Claims.ToList()[5].Value;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.