使用Spring的OAuth2的Android客户端

时间:2014-11-12 13:51:30

标签: android spring oauth

任何人都可以帮助我了解如何使用Spring Framework为OAuth2构建Android客户端?我必须使用Spring for Android或Spring Social或Spring Security?我已经使用Spring Framework构建了SaaS,它使用了Spring Security OAuth2模块。

1 个答案:

答案 0 :(得分:1)

OAuth 2.0在RFC 6749中定义。规范不依赖于Spring。因此,即使您的服务器端实现使用Spring,也不一定意味着您的Android应用程序必须使用Spring客户端库。您可以使用任何您喜欢的OAuth 2.0客户端库。但是,在没有任何专用库的情况下实施OAuth 2.0客户端并不困难。

对于Android应用程序,您的服务器的authorization endpoint可能希望客户端应用程序使用" Authorization Code Flow"。如果是这样,您必须实现的是授权代码流的客户端代码。简而言之,您需要做的是提出一个等同于以下内容的请求:

https://your-server.com/your-authorization-endpoint?client_id=your-client-id&response_type=code&scope=space-delimited-list-of-scopes

您的服务器将返回HTTP状态代码为" 302 Found"的响应。响应包含Location标头,其值为URL。当最终用户授权您的客户端应用程序时,URL的查询组件包含code参数,或者当最终用户拒绝您的客户端应用程序时,该参数包含error参数。在任何一种情况下,您都必须从网址中提取codeerror

code的值称为" 授权码"。向服务器的token endpoint发出请求以获取访问令牌。

https://your-server.com/your-token-endpoint?grant_type=authorization_code&code=the-authorization-code-issued-to-your-client-application&client_id=your-client-id

阅读RFC 6749,然后向您的朋友或同事询问更多详情。