2015-12-29 11 views
5

oauth 2で認証するためのWeb APIに接続するAngularJSで書かれたアプリケーションがあります。すべてがそのコアピースでうまくいっていますが、ログイン(clientID)を評価するための追加パラメータとセットアップタイプの覚えているタイプの機能(覚えている)。Web APIでoauth2とAngularJSを使用してトークンに追加のパラメータを送信

角度側から、それはこのようなものになります。私はStartup.csとSimpleAuthorizationServerProvider.csを通じてトークンを処理していたら、これらの値をキャプチャするための最良の方法として

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) { 

任意の考えを?ありがとう

答えて

8

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です。

+0

それは魅力的だった。助けてくれてありがとう。私はclient_idを見落としたので、知っておきましょう。標準以外のパラメータを追加することをお勧めしない場合は、機能を覚えているセットにその真偽値を渡すことをどのようにお勧めしますか? –

+0

IMHO、 "私を覚えている"ことは、トークンの素晴らしい世界ではあまり意味がありません。それは何を正確にしていますか? – Pinpoint

+0

私は本当に覚えている機能の大ファンではないが、私のクライアントはそれを望んでいる。基本的に、トークンはデフォルトで24時間後に期限切れになるように設定されており、その有効期限を30日間に延長することを覚えておいてください。 –

関連する問題