使用Facebook Oauth从Web服务器上的移动应用程序登录流程

dde*_*zia 7 facebook login spring-security spring-social

我有一个使用Spring和Spring安全性构建的Web应用程序,允许用户通过Facebbok注册ether或创建帐户,在这两种情况下都会创建一个Web应用程序帐户.所以2种注册方法如下::

  • 直接在Web应用程序上注册:用户名和密码存储在db中.
  • 通过Facebook注册:用户登录facebook(Outh),网络应用程序从Facebook检索数据以填写注册表单.Web应用程序提示用户创建Webapp帐户.在我的数据库中,我存储了web应用程序用户和facebook数据(访问令牌等),所以第二次尝试登录时我可以将facebook帐户与web app帐户相匹配(我使用spring social).

现在我正在为移动应用程序创建一个休息服务,它需要身份验证.我使用基本的http auth来访问Web服务.

我现在的问题是如何使用spring security在我的Web应用程序中登录用户?

我的想法是:

  • 移动应用程序登录到facebook并检索access_token(尚未与Web应用程序服务器联系)
  • 移动应用程序将访问令牌发送到Web应用程序
  • Web应用程序检查访问令牌是否与db有效,或直接与facebook
  • 如果访问令牌有效,应用程序会将用户名和密码(可以使用私钥算法加密)发送回移动应用程序.
  • 一旦收到Web应用程序用户和密码,用户就会被验证,并且此信息存储在移动设备上并用于http身份验证.

你认为这种流程是否安全?你有其他想法吗?

先感谢您