gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:07:30 24 4
gpt4 key购买 nike

我对使用 Android 帐户管理器进行身份验证有疑问。我们有一个后端和一个 Android 应用程序,用户应该使用他的 Facebook 帐户登录到我们的后端。目前,我们为此展示了一个 webview,它执行正常的 oAuth 2,但使用 Android 帐户管理器对用户来说更安全、更容易,因此我们想切换。我的问题是,服务器如何验证用户是否真的是他假装的人。由于我们不能信任该应用程序,因此我们必须从服务器端与 fb 对话以验证用户是否真的是他假装的人。基于相当similar idea我制作了下图来询问您这是否是正确的方法,或者我是否遗漏了什么:

Steps before the user is authenticated at "My Server"流程如下所示:

  1. 用户想要使用他的 facebook 帐户登录
  2. Android 客户经理显示在他选择 Facebook 帐户的地方
  3. 用户授予访问权限,允许“我的应用程序”访问他的 fb 数据
  4. Android 客户经理从 Facebook 服务器获取授权 token
  5. “我的应用程序”现在有了授权 token ,可以访问用户的 fb 数据
  6. “我的应用程序”将 token 传递给“我的服务器”
  7. “我的服务器”现在通过从 fb 服务器获取用户数据来检查 token 是否有效
  8. 如果 token 有效,“我的服务器”会为与“我的应用程序”的当前 session 返回一个正常的临时有效 cookie。用户现在使用他的 fb 帐户登录我的服务器。

那么这是正确的方法吗?第 6 步将 token 一次传递给“我的服务器”是个好主意还是有更好的方法?顺便说一句,Facebook 在这里只是一个例子,我们使用不同的身份验证提供商,如 FB、Google 和 Twitter,但每个提供商的流程应该相同。

最佳答案

不知道这样对不对。但我想分享一下我们如何在我们的案例中解决这个问题,这与您的解决方案几乎相同。我们使用的是 GoogleFacebook 身份验证提供商。

我们的 android 应用程序将 token 发送到服务器,然后服务器根据提供者验证 token ,如果验证通过,则用户可以继续使用,如果没有,我们会显示相应的消息。此外,我们过去常常在每次用户在服务器端打开应用程序时检查 token 的验证,如果 token 仍然有效,则用户可以使用应用程序,如果不是,我们只是将用户带回登录屏幕,以便用户可以再次验证自己,因为 token 得到一段时间后过期。

关于android - 使用 Android 帐户管理器验证在我的服务器上使用 FB 登录的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28677563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com