【发布时间】:2017-01-22 16:09:22
【问题描述】:
我目前正在开发一个允许用户通过用户名/密码(OAuth 2.0 密码授予)、Facebook、Twitter 或 Google 登录的移动应用程序。此移动应用程序的后端使用 Spring Boot/Cloud (Java) 编码,并利用微服务原则。我有几个可以通过 Eureka 发现的小服务,并使用 Spring Cloud Config 进行集中配置。它们都使用充当反向代理的 Spring Cloud Zuul 暴露给移动设备。我接受用户名和密码的 Spring Security OAuth 2.0 设置然后返回 JWT 令牌,每次向后端发出请求时都会验证此令牌。我还将用户本地存储在 MongoDB 中并使用方法级别安全性。我想将社交登录添加到我的应用程序并让它执行以下操作:
在移动设备上进行 OAuth 舞蹈并获取访问令牌
-
将访问令牌发送到服务器,并使用 Spring Social 在本地创建一个新用户并将其关联到 Facebook/Twitter/Google,然后返回一个可用于验证请求的 JWT 令牌
这个 JWT 令牌应该由 Spring Security 创建,我应该仍然可以使用 Method Level Security 并拥有本地用户
基本上,我想要我的自定义 Spring Security OAuth 2.0 密码授予和社交登录的所有功能
这是我第一次尝试构建系统,因此我期待着那些比我更有经验的人的回应。我见过很多使用 Spring Social 的示例,但它们都是针对 Web 应用程序的,而不是针对移动设备的,这是我目前停留的地方。
我的问题如下:
- 我建议的方法是否足够?还有其他无状态且更适合移动应用的方法吗?
- Spring Security OAuth 2.0 和 Spring Social Security 是否足以完成此任务?如果是这样,是否有我可以使用的资源?我在网上没有找到很多。
- 可以使用 Spring Cloud Security 作为解决方案吗?
- 我是否应该考虑使用 Auth0 或 OKTA 等 3rd 方提供者进行身份验证?
【问题讨论】:
标签: mobile social-networking spring-cloud spring-security-oauth2 spring-social