認証サーバーからアクセストークンを取得するためにusername-password grantを使用しています。ユーザーがログアウトするか、クライアントアプリケーションを閉じるまで、アクセストークンが期限切れになる前に、提供された最新表示トークンを使用して更新します。だから私は電話を期待リフレッシュしSpring Securityのusername-password grantでリフレッシュトークンを使用して新しいアクセストークンを要求するOAuth2
curl -v --data "grant_type=password&username=user&password=pass&client_id=my_client" http://localhost:8080/oauth/token
:私たちは何かを呼び出すトークンを取得するには
私はちょうどこのリフレッシュトークン要求を発行する方法のいずれかの例を見つけることができません。しかしながら
curl -v --data "grant_type=refresh_token&access_token=THE_ACCESS_TOKEN&refresh_token=THE_REFRESH_TOKEN" http://localhost:8080/oauth/token
または多分
curl -v -H "Authorization: Bearer THE_ACCESS_TOKEN" --data "grant_type=refresh_token&refresh_token=THE_REFRESH_TOKEN" http://localhost:8080/oauth/token
:このように見えるように
しかし、それはちょうど私に401を与えるでしょう。
ああ、多分私はclientIdを追加する必要がありますか?私はクライアントの秘密を使用することはできません。なぜなら、(上記のトークンの取得要求を参照してください)何もないからです。結局のところ、ユーザー名とパスワードを使用して認証が行われます。
サーバーの設定は正しいと思いますので、ここでは投稿しません。私のサンプルリクエストの1つがうまくいかなければならず、重要な設定部分を見る必要がある場合は、それらを追加します。
ありがとうございます!
ここでリフレッシュトークンがなぜ必要なのでしょうか。限られた有効性を持つアクセストークンは、より単純なワークフローでまったく同じように動作します。何か不足していますか? – long
あなたのアクセストークンが期限切れで、あなたのユーザーがまだログインしていない場合、あなたはその場合に新しいアクセストークンを取得する必要があります。 –