来自连接到 Node.js API 的移动客户端的社交身份验证

Posted

技术标签:

【中文标题】来自连接到 Node.js API 的移动客户端的社交身份验证【英文标题】:Social auth from mobile client connected to Node.js API 【发布时间】:2016-03-29 08:21:51 【问题描述】:

我有一个使用 PassportJS 的 Node.js 服务器,它通过 Google、Facebook 和 Twitter 使用社交登录。

Node.js 服务器托管一个 API,该 API 使用 PassportJS 中间件来验证路由并安全地提供数据。 API 的存在是为了服务于一个 ios 应用程序,该应用程序将是用户通过 Google、Facebook、Twitter “登录”的地方,随后将在我的服务上创建他们的帐户。

当各个公司的移动 SDK 用于 我的客户他们的服务器 之间的直接通信时,我如何才能做到这一点?我本质上想要一种 my clientmy server 对话的方式,该服务器与 their server 对话。如果整体想法不正确,请告诉我。

【问题讨论】:

相关 — passport.js RESTful auth 【参考方案1】:

我认为正确的做法是将移动应用与社交登录集成,而不是您的网站。

根据您在应用中使用的技术,您可以找到一些库来简化您的应用。在您的应用上,它可以是原生弹出窗口,或简单的应用重定向到 Facebook 应用、Google 应用或其他任何获取权限的应用,然后将应用重定向回您的应用。

您可能不希望浏览器弹出并将用户重定向到 facebook。很多用户只是在智能手机上使用 facebook 应用程序,他们甚至没有在智能手机的浏览器中登录 facebook 网站。

一旦您获得许可并获得用户信息,您就可以安全地将这些数据发送到您的服务器并存储起来以备将来使用。您可以将这些信息与设备 ID 相关联,或者生成一个令牌并将其发送回用户的设备并将其存储在那里以供将来进行身份验证。

【讨论】:

以上是关于来自连接到 Node.js API 的移动客户端的社交身份验证的主要内容,如果未能解决你的问题,请参考以下文章

服务器无法连接到客户端的发射

将 Socket.io 浏览器客户端连接到本地 Node.js 网络服务器

Node.js网络编程

如何从移动应用和节点 API 处理 Firebase 身份验证

如何使用来自独立 node.js 应用程序的 ethers.js 连接到 Metamask 钱包?

在 javascript/node.js 中连接到 Gmail IMAP API