簡體   English   中英

使用oauth2和AngularJS在Web API中向令牌發送附加參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM