如何集成loopback第三方登录android

bla*_*ara 7 android strongloop loopbackjs

我的项目包括web和android客户端.我想结合Google跨平台登录和环回第三方登录.

在我的场景中,我永远不会要求用户名和密码.用户仅在网络和Android应用上使用Google登录按钮进行身份验证和授权.

让我们假设,这是您第一次通过我的网站登录Google登录.在环回第三方方案中,如果您不在db上,则会创建一个帐户对应的提供者和外部ID.(在这种情况下,提供商是谷歌和外部ID是您唯一的谷歌ID).这是针对web,loopback-example-passport

所以,假设上面的android场景.您只需点击Google登录按钮,然后环回服务器就可以执行以上操作(如网络)

这是否有内置的环回方式?如果没有,我如何正确地将此场景集成到环回中?

Reu*_*cha 3

嗯,这是一个有点老的问题,但我在 Android 上遇到了同样的问题,但是使用 Facebook 第三方登录。

我没有找到任何简单的解决方案,因此经过一番努力尝试了不同的方法:(根据您的情况将 facebook 更改为 google)

  1. UI 用户按下“使用 facebook 登录”按钮(由 facebook sdk for android 提供)
  2. UI 用户使用 Facebook 凭据登录
  3. 客户端从facebook获取用户的访问令牌
  4. 客户端加密访问令牌并将其传递到服务器。
  5. 服务器解密访问令牌,并使用访问令牌与 facebook graph API 进行对话 - 用于验证令牌,并在需要时获取与请求用户相关的其他信息。
  6. 假设它是有效的,服务器检查用户是否已有本地帐户(可以使用电子邮件或 ID 进行检查):

    6.1 如果用户没有帐户,我们会使用 Facebook 用户 ID 或电子邮件创建一个新帐户(环回需要密码,因此可以提供随机帐户),这将分配我们自己的唯一用户 ID 并发出我们的身份验证票 ( user.createAccessToken(ttl, callback))。

    6.2 否则,继续为此会话向用户分配身份验证票证