2016-07-05 10 views
0

OAuth2を複数回実行した後、access_tokenを受信すると、何が行われるべきですか?oauth2との対処方法

app.get('/oauth2', function(req, res) { 
    var code = req.query.code; 

    var url = "https://.../oauth/access_token"; 
    var options = { 
    url: url, 
    method: "POST", 
    form: { 
     client_id: '...', 
     client_secret: '...', 
     grant_type: 'authorization_code', 
     redirect_uri: 'http://localhost:8080/oauth2', 
     code: code, 
    }, 
    json: true 
    } 

    request(options, function(err, response, body) { 

    // I need to save the user in database if she doesn't exist 
    // Then redirect, but should I pass the access_token to the redirect? 
    res.redirect('/'); // or res.redirect('/?access_token=zzz') 
    } 

    // Also, should the access_token be encrypted 
    // Does it need to be saved in database? 
    // Does it go in local storage? 

}); 

返信で受け取った情報の一部が欲しいので、データベースに保存する必要があります。しかし、特に私はaccess_tokenで何をしますか?それはデータベースに保存されますか?暗号化する必要がありますか?リダイレクトすると、クエリ文字列として追加されますか?私はそれをローカルストレージに保存しますか?もしそうなら、どうですか?

答えて

0

まず、コードにjson: trueが含まれていますが、RFC 6749 4.1.3. Access Token Requestには、application/x-www-form-urlencoded形式を使用してパラメータを送信する必要があると記載されています。

第2に、トークンエンドポイントからの応答の形式はJSONです。詳細は、4.1.4. Access Token Responseを参照してください。

第3に、アクセストークンを取得した後、後で使用できるように保存する必要があります。アクセストークンを保存する場所はあなた次第です。日付ベース、オンメモリ、そしてあなたが好きな場所。アクセストークンを保存するときに暗号化したい場合は、好きなように行います。

最後に、アクセストークンを使用してリソースサーバーのWeb APIを呼び出します。通常、Web APIの実装では、RFC 6750で定義されている方法でアクセストークンを受け入れます。本明細書では、以下の3つの方法が定義される。

  1. In Authorization header
  2. As a Form parameter
  3. As a Query parameter
関連する問題