Java REST API后端的OAuth2和电子邮件授权 概述
我正在构建一个RESTful API应用程序作为mobile\web后端(我们称之为MyBackendApp),我正在寻找一个用于应用程序用户身份验证和授权的当代解决方案。后端的主要语言是Java。看看其他应用程序,它们中的许多都为用户提供了几种身份验证方法:使用外部应用程序帐户(如Facebook、Google、Yahoo、OpenId等)或内部(电子邮件\密码)。类似Stackoverflow的东西在它的注册\登录上有。我阅读了很多关于OAuth2的资料,我还使用SpringSecurity来实现内部用户帐户和会话管理。但我很难把这两种方法结合起来 要求Java REST API后端的OAuth2和电子邮件授权 概述,java,spring,security,oauth,mobile-application,Java,Spring,Security,Oauth,Mobile Application,我正在构建一个RESTful API应用程序作为mobile\web后端(我们称之为MyBackendApp),我正在寻找一个用于应用程序用户身份验证和授权的当代解决方案。后端的主要语言是Java。看看其他应用程序,它们中的许多都为用户提供了几种身份验证方法:使用外部应用程序帐户(如Facebook、Google、Yahoo、OpenId等)或内部(电子邮件\密码)。类似Stackoverflow的东西在它的注册\登录上有。我阅读了很多关于OAuth2的资料,我还使用SpringSecurity
- 使用外部(可能是OAuth2)类似Facebook的帐户
- 使用电子邮件\密码
我的理解是,如果用户已经将Facebook的authToken(他已经使用Facebook应用程序登录)存储在他的移动设备中的某个位置,那么只需获取authToken(我相信我在Android SDK中看到了这个方法,如果我错了,请纠正我)。否则,需要通过标准OAuth过程从提供者(Facebook)接收authToken
现在,从提供商MyBackendApp获得authToken和密钥可以从该令牌和:
- 如果uniqueId已经在MyBackendApp数据库中,则用户已通过身份验证 和MyBackendApp允许或不允许访问请求的REST端点, 基于用户(由其唯一ID和电子邮件定义)角色
- 如果uniqueId不在MyBackendApp数据库中,则用户正在通过MyBackendApp 注册过程,类似于Stackoverflow注册。他的信息存储在数据库中 用户被分配了一些角色
登录。如果用户已注册并希望登录