使用Android帐户管理器验证在我的服务器上使用FB登录的用户

Sim*_*mon 11 authentication android facebook oauth accountmanager

我有一个关于使用Android帐户管理器进行身份验证的问题.我们有一个后端和一个Android应用程序,用户应该使用他的Facebook帐户登录我们的后端.目前我们为此目的展示了一个webview,它可以正常运行oAuth 2,但使用Android帐户管理器对用户来说更安全,更容易,因此我们想切换.我的问题是,服务器如何验证用户是否真的是他假装的人.由于我们不能信任App,我们必须从服务器端与fb交谈以验证用户是否真的是他假装的人.根据一个非常相似的想法,我做了下面的图表,问你这是否是正确的方法,或者我错过了什么:

用户在 流程看起来像这样:

  1. 用户想要使用他的Facebook帐户登录
  2. 显示Android客户经理,他选择了Facebook账户
  3. 用户授予允许"我的应用"访问其fb数据的访问权限
  4. Android客户经理从Facebook服务器获取身份验证令牌
  5. "我的应用程序"现在具有身份验证令牌,可以访问用户的fb数据
  6. "我的应用程序"将tokten传递给"我的服务器"
  7. "我的服务器"现在通过从fb服务器获取用户数据来检查令牌是否有效
  8. 如果令牌有效,"我的服务器"会使用"我的应用程序"为当前会话返回正常的临时有效cookie.用户现在使用他的fb帐户登录My Server.

这是正确的方法吗?步骤6是一个好主意,将令牌传递给"我的服务器"还是有更好的方法?顺便说一句Facebook就是一个例子,我们使用不同的身份验证提供商,如FB,谷歌和Twitter,但每个人的流量应该是相同的.

Zee*_*bir 9

我不知道这是否正确.但我想分享一下我们如何在我们的案例中解决这个问题,这与你的解决方案非常相似.我们使用谷歌Facebook身份验证提供商.

我们的Android应用程序将令牌发送到服务器,然后服务器根据提供程序验证令牌,如果它已经过验证,那么如果不是我们显示相应的消息,则用户是好的.每当用户在服务器端打开应用程序时,如果令牌仍然有效,我们用来检查令牌的验证用户可以使用应用程序,如果不是我们只是将用户带回登录屏幕,这样用户可以再次验证自己,因为令牌得到一段时间后过期了.