使用 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 中的本地和 Google 策略:序列化用户时的问题