1
我在后端有一个Web API,前端有一个Web应用程序和电话应用程序。 我在所有三种OAuth/OpenId身份验证上使用Auth0。 Web API和Web应用都是用ASP .Net Core 1.1 MVC编写的。在我的Web应用程序控制器的每个API调用请求访问令牌是否正确?
每次我从Web应用程序调用Web API时,都会向Auth0请求访问令牌。因此,在需要我的API访问每个控制器的动作,我有:
var client = new HttpClient();
var tokenResponse = await client.PostAsync(tokenEndpoint,
new FormUrlEncodedContent(new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("grant_type", "client_credentials"),
new KeyValuePair<string, string>("client_id", _auth0Settings.ClientId),
new KeyValuePair<string, string>("client_secret", _auth0Settings.ClientSecret),
new KeyValuePair<string, string>("audience", _auth0Settings.ApiIdentifier),
}));
这是这样做的正确方法是什么?还是应该在Web应用程序启动时执行一次,然后将访问令牌存储在全局变量中,我可以从我的所有控制器调用该变量?
应用程序是否应该使用令牌中的过期日期检查过期情况,或者在401或其他授权错误后获取新的令牌。 –
应用程序应该从web api获得401之后的新令牌。必须在web api上检查到期日期。我也稍微更新了我的答案.. – Stan88