android - 使用 spring security oauth 将社交登录添加到 native 应用程序

标签 android spring-security spring-boot spring-social spring-oauth2

我一直在关注这个链接 https://spring.io/guides/tutorials/spring-boot-oauth2用于对我自己的资源服务器实现安全性。我的最终目标是让自定义登录 oauth 服务器从我使用 grant_type=password 实现的 android 应用程序访问资源服务器。

现在我想将 Facebook 等社交登录添加到同一流程中。我能够轻松地使其适用于网络应用程序,我什至在原生 android 应用程序中从 facebook 获得了 accessToken,但现在呢?经过如此多的搜索,我找不到任何适合 Android 应用程序的东西。所以我的问题是:

  1. 如何使用 spring oauth2 将社交登录添加到 Android 应用程序。有链接吗?
  2. 我是否应该将 Spring social 与 spring security 一起用于我的目标。如果是,怎么做?
  3. 我一直在使用 JDBCTokenStore 来保存我的 token ,以防我的服务器重新启动。如果我以某种方式将我的 token 发送到服务器,我应该如何存储它?

如果我的理解不正确,请告诉我。

最佳答案

无需深入挖掘细节,您可以获取从客户端获得的 token ,并使用它通过连接存储库创建新连接。当然,您还需要知道连接属于哪个用途。最后,代码将看起来像这样:

代码:

UsersConnectionRepository ucr = ...; // probably injected
ConnectionRepository cr = ucr.createConnectionRepository(userId); // you determine the userId somehow
ConnectionData cd = new ConnectionData(...); // lots of params...you'll fill those in.
FacebookConnectionFactory fcf = ...; // create or inject this
Connection<Facebook> conn = fcf.createConnection(cd);
cr.addConnection(conn);

如您所见,上面的代码很粗糙...我留下了很多内容供您填写。但这就是您的大致做法。

关于android - 使用 spring security oauth 将社交登录添加到 native 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37901768/

相关文章:

java - 错误: Field dataSource in required a bean of type 'javax.activation.DataSource' that could not be found

java - 滚动时 ScrollView 非常慢

android - ListView 和第二个 xml

java - 匿名上传文件对象到 Imgur API (JSON) 给出身份验证错误 401

java - 使用 Spring Security 保护 Spring Cloud 功能

java - 通过CAS服务器对Spring Web应用程序进行身份验证

java - 如何配置 Spring 使用 @RequestBody 注释将 JSON 反序列化为 BigDecimal

android - AsyncTask.doInBackground - Android Scala 项目中抽象方法未实现错误

spring-security - Spring Security 进行身份验证并立即返回 Access Denied

spring - 使用 Spring Boot 的 Hibernate Envers - 配置