[英]Sending Additional Parameters to Token in Web API with oauth2 and AngularJS
我有一個用AngularJS編寫的應用程序,它通過oauth 2聯系Web API進行身份驗證。但是我需要傳入額外的參數來評估登錄(clientID)並設置一個記住我的類型功能(記住)。
從Angular方面來看,它看起來像這樣:
var data = "grant_type=password&username=" + form.username + "&password=" + form.password + "&clientID=" + clientID + "&remember=" + form.remember;
var deferred = $q.defer();
$http.post(serviceBase + 'token', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success(function (response) {
一旦我通過Startup.cs和SimpleAuthorizationServerProvider.cs處理令牌,任何想法都是捕獲這些值的最佳方法嗎? 謝謝
使用GrantResourceOwnerCredentials
,您可以從OAuthGrantResourceOwnerCredentialsContext
檢索OWIN請求,並通過調用ReadFormAsync()
提取所需的自定義參數。
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
var form = await context.Request.ReadFormAsync();
if (string.Equals(form["remember"], "true", StringComparison.OrdinalIgnoreCase))
{
// Add custom logic to handle the "remember me" case.
}
}
也就是說,通常不鼓勵添加自定義(即非標准)參數,特別是如果它們是強制性的。 請注意,您不需要使用自定義clientID
參數,因為已經存在標准等效項: client_id
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.