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