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. OAuth2リフレッシュトークンを取得する
- 3. Spring OAuth2とAngularJSアプリケーションの認証/認可
- 4. 認証コード付きリフレッシュトークンのOAuth2目的
- 5. spring-boot自身とリモートOAuth2認証サーバ
- 6. Google API OAuth2 - 承認トークンからリフレッシュトークンを取得
- 7. 複数のクライアントをSpring OAuth2認証サーバに追加する
- 8. Spring oauth2 - 認証サービスとglobalUserDetailsの違い
- 9. SpringセキュリティベースのOAuth2サーバを設定する
- 10. 春ブーツセキュリティのOAuth2認証サーバと業務サーバ分裂例えば
- 11. PHPサーバーからAndroidアプリケーションへのベースURLの取得方法
- 12. 複数のサーバでDevitsベースの認証を使用するRailsアプリケーション - ログイン問題
- 13. JWT Oauth2リフレッシュトークンを取り消します
- 14. リフレッシュトークンからPaypalのアクセストークンを取得
- 15. WCF - Webアプリケーションからの証明書ベースの承認
- 16. Rails 3 - IPベースの認証を取得する
- 17. リフレッシュトークンを使用して新しいトークンを取得symfony oauth2
- 18. Windows認証ベースのLightSwitchのWebアプリケーション
- 19. Ping Fed OAuth2アクセス権/リフレッシュトークンを取得するためのカスタム許可?
- 20. OAuth2リフレッシュトークン - リフレッシュ方法
- 21. 帯域外認証を使用するlibmicrohttpdベースのサーバ
- 22. 既存のjhipsterプロジェクトをJWT認証からOAuth2認証に変更する
- 23. OWINセキュリティ - OAuth2リフレッシュトークン - リフレッシュトークンの有効期限を含める方法
- 24. Facebookアプリケーション認証トークンエラーを取得する
- 25. Spring oauth2認可プロバイダ
- 26. SAML 2.0ベースのiPhoneアプリケーション用認証
- 27. DelphiアプリケーションとWebサーバの間の認証
- 28. RestSharp Oauth2認証Cherwell安らかなAPI
- 29. OAuth2認証のフローを設計する
- 30. アンドロイドクライアントからgrailsサーバを認証する
トークン新しいアクセスを取得する必要があります。むしろ/ 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