使用 passport.js 将本地策略连接到另一个(Facebook、Twitter、Google 等)

Posted

技术标签:

【中文标题】使用 passport.js 将本地策略连接到另一个(Facebook、Twitter、Google 等)【英文标题】:Using passport.js to connect a local strategy to another (Facebook, Twitter, Google, etc) 【发布时间】:2013-01-13 03:04:36 【问题描述】:

我有一个 node.js 应用程序,它使用护照(使用修改后的本地护照作为登录策略)进行身份验证管理。我希望允许用户使用护照策略连接他们的社交网络帐户,但据我所知,现有的身份验证(在请求对象上)在创建新身份验证时会被覆盖。

我应该如何处理这个问题?

【问题讨论】:

【参考方案1】:

当我应该使用 passport.authorize 时,我使用了 passport.authenticate!

此处的文档:http://passportjs.org/guide/authorize/

【讨论】:

【参考方案2】:

我为此创建了一个示例,请参阅https://github.com/fpp/drywall

它允许将一个或多个社交帐户与本地策略用户关联,从社交帐户创建本地策略用户,以及从这些用户添加/删除社交帐户。

目前已实现 twitter 和 github - 只需添加其他护照版本并调整代码示例以获得更多服务。

示例使用 Node.js 0.8x、express 3.x 和主干.js - 包括来自 http://jedireza.github.com/drywall/ 示例项目的一些基本用户管理。

附:我无法获得第二条路线(对于相同的社会服务)/授权与使用护照进行身份验证,如护照文件中所述。使用

passReqToCallback: true

改为在策略中为用户工作(参见示例了解更多信息)。

【讨论】:

以上是关于使用 passport.js 将本地策略连接到另一个(Facebook、Twitter、Google 等)的主要内容,如果未能解决你的问题,请参考以下文章

需要了解passport.js本地策略

向 passport.js 本地策略添加其他字段

passport.js 中的本地和 Google 策略:序列化用户时的问题

Passport.js 策略在不使用会话时失败

Passport.js:passport-facebook-token 策略,通过 JS SDK 登录然后验证护照?

markdown 使用docker客户端连接到另一台主机,而无需修改本地Docker安装