WebサービスでOAuth2を使用してAndroidアプリケーションを認証したいと思います。いくつかの研究の後、私は/ oauth /暗黙の認証を与えるエンドポイントを使用するべきであることを知っています。しかし、ログインページへのリダイレクトとログインに成功した後、サーバーはアクセストークンを返します。有効期限が切れた後、ユーザーは再度ログインする必要があります。これは私のシナリオでの問題です。古いトークンが期限切れになったときにアクセストークンを取得するために、リフレッシュトークンを使用してそれを使用できるようにしたいと考えています。このようなシナリオは、春のOAuth2を使用して可能ですか?AndroidアプリケーションのリフレッシュトークンをSpringのOAuth2ベースの認証サーバから取得する
0
A
答えて
1
AuthorizationServerConfiguration
には、DefaultTokenServices
で実装されたTokenServices
beanが必要です。
defaultTokenServices.setSupportRefreshToken(true); // enable refresh tokens
クライアント構成では、必ずリフレッシュトークンのサポートを設定してください。
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients.inMemory()
.withClient("trusted-app")
.authorizedGrantTypes("password", "refresh_token")
.authorities("ROLE_TRUSTED_CLIENT")
.scopes("read", "write")
.resourceIds(resourceId)
.accessTokenValiditySeconds(accessTokenValiditySeconds)
.refreshTokenValiditySeconds(refreshTokenValiditySeconds)
.secret("secret");
}
トークンエンドポイントに要求するときは、リフレッシュトークンを含める必要があります。
/oauth/token?grant_type=password&username="+username+"&password="+password
これはあなたに私はAndroidアプリケーションへのユーザーのログイン/パスワードを与える必要があり、あなたのシナリオでは
/oauth/token?grant_type=refresh_token&client_id=trusted-app&refresh_token="+refreshToken
関連する問題
- 1. Spring OAuth2認証コードを取得する
- 2. Web2py JWTベースの認証 - リフレッシュトークン
- 3. Spring OAuth2とAngularJSアプリケーションの認証/認可
- 4. OAuth2リフレッシュトークンを取得する
- 5. 認証コード付きリフレッシュトークンのOAuth2目的
- 6. spring-boot自身とリモートOAuth2認証サーバ
- 7. Google API OAuth2 - 承認トークンからリフレッシュトークンを取得
- 8. 複数のクライアントをSpring OAuth2認証サーバに追加する
- 9. Google OAuth2認証アカウントを取得する
- 10. ステートレス.NET JWTベースのoauth2認証サーバー
- 11. Spring Security OAuth2で認証されたユーザーの詳細を取得する方法
- 12. Oauth2認証とSpringブート
- 13. SpringブートOAuth2 2ステップログインの認証サーバー
- 14. Spring oauth2 - 認証サービスとglobalUserDetailsの違い
- 15. oAuth2 Spring Securityを介して認証(プリンシパル)オブジェクトを取得しますか?
- 16. Pentahoデータ統合:Oauth2から認証コードを取得
- 17. SpringセキュリティベースのOAuth2サーバを設定する
- 18. PHPサーバーからAndroidアプリケーションへのベースURLの取得方法
- 19. Microsoft OAuth2認証がリフレッシュトークンを返さない
- 20. OAuth2の他のリフレッシュトークンを使用して新しいリフレッシュトークンを取得することはできますか?
- 21. 春ブーツセキュリティのOAuth2認証サーバと業務サーバ分裂例えば
- 22. 複数のサーバでDevitsベースの認証を使用するRailsアプリケーション - ログイン問題
- 23. 認証リフレッシュトークン
- 24. JSFページでLibertyのFORMベース認証からユーザープリンシパルを取得する方法は?
- 25. リフレッシュトークンからPaypalのアクセストークンを取得
- 26. JWT Oauth2リフレッシュトークンを取り消します
- 27. WCF - Webアプリケーションからの証明書ベースの承認
- 28. OAuth2-SpringBoot - リフレッシュトークン
- 29. Rails 3 - IPベースの認証を取得する
- 30. ang JSユーザ認証後にのみサーバからURLデータを取得する
トークン新しいアクセスを取得する必要があります。むしろ/ oauth/loginページにリダイレクトするエンドポイントを使用することを望みます。そうすれば、Androidアプリケーションはユーザーのログイン/パスワードを知る必要はありません。 – Cob
現時点で私は何か違うものを試しています。ブラウザでこのURLを開きます:http:// localhost:8080/oauth/authorize?client_id = clientId&redirect_uri = http:// localhost:8080/redirect&response_type = code ログインページにリダイレクトされ、 。 2番目の手順は次のとおりです。 curl -X POST "clientId:secret @ localhost:8080/oauth/token&grant_type = authorization_code&code = 6Lgq01" しかし、トークンを取得する代わりに、再度ログインページにリダイレクトされます。私は何か間違っているのですか? – Cob
あなたはSpring OAuth Serverを管理していますか、それともサードパーティが管理していますか?両方を所有している場合は、トークンのエンドポイントを使用する方が意味があります。 http://stackoverflow.com/a/36974132/2983312リフレッシュトークンを発行するようにクライアントを設定すると、選択したログインタイプに関係なくリフレッシュトークンが含まれます。 – blur0224