gpt4 book ai didi

android - 处理用户身份验证(通过 Facebook)和应用内的安全通信

转载 作者:行者123 更新时间:2023-12-01 16:49:07 25 4
gpt4 key购买 nike

也许以下内容听起来有点奇怪,我有一些错误的假设,所以我希望你能宽恕这一点。

简单介绍一下我们想要实现的目标:

现在我们正在开发一个需要后端存储用户特定数据(例如图像、评论等)的应用程序。由于我们想摆脱所有用户身份验证并且我们也想使用 facebook 功能,我们将让 Facebook 完成所有身份验证工作,并根据我们在他们通过身份验证后收到的 id/email 创建一个用户。

让我们简单描述一下流程:

  • 用户打开应用程序但未登录(Facbook SDK 将自行处理 session 并保存 cookie)。
  • 用户通过 Facebook 进行身份验证。
  • 应用程序将 id 发送到服务器。如果存在 ID,服务器将返回,因此应用程序将显示某种注册(特定于域的表单)或立即登录用户

  • 现在是棘手的部分,我不确定如何处理。

    由于后端的 API 是公共(public)的(HTTPS),我们需要以某种方式确保用户是否已登录,然后才能通过应用程序获取他的数据。

    仅仅说“哦,应用程序已经验证了他是用户,所以没有其他人会调用后端”是不够的。后端如何验证 api-consumment 是否真的通过他的 Facebook 登录进行了身份验证?我们希望避免任何人都可以使用他在设备上保存的 Facebook ID 调用我们的 REST 服务。

    请记住:我们不希望在用户通过 Facebook 进行身份验证时为其分配密码。

    也许我在这个用例中有某种奇怪的想法,所以请启发我!
    提前感谢所有答案和共享知识。期待!!

    最佳答案

    如果您让服务器使用访问 token 获取用户信息,您可以执行以下操作:

  • 进行客户端 OAuth 身份验证并接收访问 token
  • 将访问 token 发送到您的后端,并使用此 token
  • 通过 Facebook API 获取用户信息,包括 Facebook ID
  • 服务器会将散列后的 ID (cookie = id + ":" + hash(id + secret)) 存储在 HTTP cookie
  • 做你的注册/登录
  • 在对服务器后端的每个请求中,将通过重新计算带有 secret 的哈希并将其与来自 cookie
  • 的值进行比较来验证来自 cookie 的 ID。

    关于android - 处理用户身份验证(通过 Facebook)和应用内的安全通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17725389/

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