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

9po*_*nt6 6 authentication oauth node.js express passport.js

我有一个node.js应用程序,它使用护照(对于登录策略使用已修改的本地护照)进行身份验证管理.我想允许用户使用护照策略连接他们的社交网络帐户,但是从我可以看到现有的身份验证(在请求对象上)在创建新身份时会被覆盖.

我该怎么做呢?

9po*_*nt6 9

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

docs http://passportjs.org/guide/authorize/


小智 5

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

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

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

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

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

passReqToCallback: true
Run Code Online (Sandbox Code Playgroud)

而在战略中,并在用户身上工作(更多参见示例).