【问题标题】:Using cookieSession to authorize user using socket.io使用 cookieSession 授权用户使用 socket.io
【发布时间】:2012-12-14 07:13:05
【问题描述】:

我正在使用socket.io的授权方法(详细here)通过检查与用户关联的cookie来检查用户是否被授权使用我的应用程序。

上面的博文相当直截了当,但我使用 cookieSessions 将会话数据存储在 cookie 中。 stackoverflow 上有一个很好的问题,但我想不通。

我想知道如何解密 cookieSession 数据以访问会话数据。我的一些示例代码:

io.set('authorization', function (data, accept) {

//Check cookie for session data

accept(null, true);});

也就是说,如何访问socket.io中的cookieSession?

【问题讨论】:

    标签: node.js socket.io session-cookies


    【解决方案1】:

    我使用以下(有护照,但没关系):

    io.set('authorization', function(data, accept) {
        var getCookieSession = require('./lib/cookie_session');
        var session = getCookieSession(data.headers, {
            key: 'YOUR KEY',
            secret: 'YOUR SECRET'
        });
    
        if (session.passport.user) {
            accept(null, true);
        } else {
            accept(null, false);
        }
    });
    

    getCookieSession 是以下模块:

    var connect = require('connect');
    
    var cookieParser = connect.cookieParser;
    var cookieSession = connect.cookieSession;
    
    module.exports = function(headers, opts) {
        var key = opts.key || '_session';
        var secret = opts.secret || '';
        var req = { headers: headers, originalUrl: "/" };
        var res = { on: function() {} };
        var next = function () {};
    
        cookieParser(secret)(req, res, next);
        cookieSession({ key: key })(req, res, next);
    
        return req.session;
    };
    

    【讨论】:

    • 我很久以前就找到了答案。有人在 github 上提出了一个要点,就像一个魅力。
    猜你喜欢
    • 1970-01-01
    • 2013-10-07
    • 2015-10-25
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多