2016-09-28 12 views
1

残りのAPIを確保するためにspring oauth2を実装しています。基本的に私は残りのapiの使用を特定のユーザーに制限するのではなく、すべてのユーザーに制限しています。javacriptを使用した、SpringフロントエンドとSpring Oauth2の統合

私はバックエンドを実装し、春のoauth2を使用してAPIを保護しました。

私はこの手順に従います:
1)5つのパラメータでGET要求を送信します。

はlocalhost:?8080/SpringRestSecurityOauth/OAuthのトーク​​ン/ grant_type =パスワード&のclient_id = Awyi123nasdk89 & client_secret = asdj39m32 @#$ sの&ユーザ名=ラーフル@ gmailの&パスワード=ラーフル9831 @

2)サーバーが検証ユーザーは春のセキュリティの助けを借りて、アクセスコードでjsonの応答を返します。

{ "access_tokenは": "22cb0d50-5bb9-463d-8c4a-8ddd680f553f"、
"TOKEN_TYPE": "ベアラ"、
"refresh_token": "7ac7940a-d29d-4a4c-9a47-25a2167c8c49"、
は "expires_in":119
}


3)私は、パラメータとして、このアクセストークンを渡すことによって保護されたリソースにアクセスするには、要求はこのような何かを行く:

はlocalhost:8080/SpringRestSecurityOauth/API /ユーザー/ ?access_token = 8c191a0f-ebe8-42cb-bc18-8e80f2c4238e

4)トークンの有効期限が切れている場合、ユーザーはステップ(2)で受け入れた最新のトークンを使用して新しいトークンを取得する必要があります。

はlocalhost:?8080/SpringRestSecurityOauth/OAuthのトーク​​ン/ grant_type = refresh_token &のclient_id = restapp & client_secret = restapp & refresh_token = 7ac7940a-d29d-4a4c-9a47-25a2167c8c49新しいアクセストークンの要求が満了した後、次のようになります

上記の手順はすべて正常に動作しています。今私はクライアント側でこれを実装する必要があります。特定のクライアントがこの呼び出しにアクセスできるようにします。私はクライアント側の技術としてHTML/CSSを使用しています。

クライアントがアクセストークンを取得する方法は?ブラウザのローカルストレージに保存する必要がありますか?または、残りの呼び出しが行われるたびに生成される必要がありますか?

いずれの例も今後さらに進んでいきます。

答えて

0

私はあなたのようなプロジェクトを実装しています。私はangularjsを使用し、応答jsonからアクセストークンを取得し、それをクッキーに格納します。 このリンクはサンプルコードを提供します:http://www.baeldung.com/rest-api-spring-oauth2-angularjs。 (「フロントエンド - パスワードの流れ」を参照)。

リフレッシュトークンは秘密にして、クライアントはhtmlアプリケーションなので、リフレッシュトークンの処理にはこのリンクhttp://www.baeldung.com/spring-security-oauth2-refresh-token-angular-jsが表示されます。

htmlクライアントの場合、アクセストークンが期限切れになったときにリフレッシュトークンを使用してアクセストークンを取得した後、http-auth-interceptor([http]://witoldsz.github.io/angular-http-auth/)を使用して再試行します期限切れのアクセストークンのために、すべての残りの要求が失敗しました。

2つ以上のリンクを投稿するには十分な評判がないことを申し訳ありません。

関連する問題