Passport.js:使用主干网访问用户

Passport.js: accessing user when using backbone

本文关键字:主干网 访问 用户 js Passport      更新时间:2023-09-26

我正在node.js应用程序中使用passport.js来运行OAuth(太棒了!),但现在,我有一件事有问题。

我在客户端使用backbone.js来创建视图(我正在尝试创建一个SinglePage应用程序…),而我想在主干中获取用户id或类似内容的唯一方法是首先创建一个隐藏在jade模板中的输入,然后将其传递给主干视图中的构造函数。。。。或者只将值分配给一个javascript变量,然后将其传递给管理所有视图的路由器,然后将它传递给每个需要它的视图

我认为这不是一个好主意,可能还有更好的选择!

你会怎么做?

谢谢!

我还没有在Backbone中做任何事情,但这里、这里和这里已经有了解决方案。只要你在某个地方获得了会话id,你就可以用cookie包检索会话(cookie已经从connect-utils外包):

if(handshakeData.headers.cookie) {
  c = cookie.parse(handshakeData.headers.cookie);
  sid = connect.utils.parseSignedCookie(c['connect.sid'], 'keyboard cat');
  redis.get('sess:'+sid, function(error, result) {
    session = JSON.parse(result);
    handshakeData.uid = session.passport.user;
    callback(null, true);
  });