Node.js Everyauth错误

Node.js Everyauth错误,node.js,api,express,everyauth,Node.js,Api,Express,Everyauth,我正在尝试在我的nodejs应用程序中使用everyauth,但是在尝试通过Google进行身份验证时,我不断遇到以下错误: Error: Step getSession of `google` is promising: session ; however, the step returns nothing. Fix the step by returning the expected values OR by returning a Promise that promises said va

我正在尝试在我的nodejs应用程序中使用everyauth,但是在尝试通过Google进行身份验证时,我不断遇到以下错误:

Error: Step getSession of `google` is promising: session ; however, the step returns nothing. Fix the step by returning the expected values OR by returning a Promise that promises said values.
    at Step.exec (/home/an/counter/www/node_modules/everyauth/lib/step.js:79:7)
    at /home/an/counter/www/node_modules/everyauth/lib/stepSequence.js:26:34
    at Promise.fulfill (/home/an/counter/www/node_modules/everyauth/lib/promise.js:44:21)
    at /home/an/counter/www/node_modules/everyauth/lib/stepSequence.js:29:19
    at Promise.fulfill (/home/an/counter/www/node_modules/everyauth/lib/promise.js:44:21)
    at Request._callback (/home/an/counter/www/node_modules/everyauth/lib/modules/google.js:91:15)
    at Request.self.callback (/home/an/counter/www/node_modules/everyauth/node_modules/request/request.js:199:22)
    at Request.EventEmitter.emit (events.js:98:17)
    at Request.<anonymous> (/home/an/counter/www/node_modules/everyauth/node_modules/request/request.js:1036:10)
    at Request.EventEmitter.emit (events.js:117:20)
TypeError: Cannot read property 'auth' of undefined
    at EveryModule.module.exports.everyModule.submodule.definit.configurable.get.step.accepts.promises.step.accepts.promises.get.step.description.accepts.promises.canBreakTo.step.accepts.promises.step.accepts.promises.step.accepts.promises.step.accepts.promises.step.accepts.promises.step.accepts.promises.step.accepts.promises.stepseq.step.accepts.promises.getAuthUri.requestAuthUri.getCode.getAccessToken.compile.getSession.addToSession.sendResponse.req (/home/an/counter/www/node_modules/everyauth/lib/modules/oauth2.js:234:21)
    at EveryModule._module._super (/home/an/counter/www/node_modules/everyauth/lib/step.js:58:18)
    at EveryModule._addToSession (/home/an/counter/www/node_modules/everyauth/lib/modules/google.js:34:10)
    at Step.exec (/home/an/counter/www/node_modules/everyauth/lib/step.js:60:17)
    at /home/an/counter/www/node_modules/everyauth/lib/stepSequence.js:26:34
    at Promise.fulfill (/home/an/counter/www/node_modules/everyauth/lib/promise.js:44:21)
    at /home/an/counter/www/node_modules/everyauth/lib/stepSequence.js:29:19
    at Promise.callback (/home/an/counter/www/node_modules/everyauth/lib/promise.js:12:8)
    at /home/an/counter/www/node_modules/everyauth/lib/stepSequence.js:28:19
    at Promise.fulfill (/home/an/counter/www/node_modules/everyauth/lib/promise.js:44:21)

http.js:691
    throw new Error('Can\'t set headers after they are sent.');
          ^
Error: Can't set headers after they are sent.
    at ServerResponse.OutgoingMessage.setHeader (http.js:691:11)
    at ServerResponse.res.setHeader (/home/an/counter/www/node_modules/everyauth/node_modules/connect/lib/patch.js:134:22)
    at /home/an/counter/www/node_modules/errorhandler/index.js:139:15
    at fs.js:268:14
    at Object.oncomplete (fs.js:107:15)
下面是我的user.js:

exports.findOrCreateUser = function (sess, accessToken, extra, googleUser) {
        googleUser.refreshToken = extra.refresh_token;
        googleUser.expiresIn = extra.expires_in;

        var promise = this.Promise();
        var user = exports.findUserByGoogleId(googleUser.id) || exports.newUser('google', googleUser);
        promise.fulfill(user);
        return promise;

}

exports.findUserByGoogleId = function(googleId) {
        for (var userID in global.users.usersById) if (googleId==global.users.usersById[userID].google.id) return global.users.usersById[userID];
        return false;
}

我用快车4。我已经尝试了所有的建议,我可以找到使用谷歌。npm安装快速会话和npm更新没有帮助。

解决方案非常简单,如chmod 777/var/run/redis/redis.sock
(或将用户添加到redis组)

chmod 777
->nono!永远不要运行
chmod 777
。这几乎是不需要的!甚至不是为了“测试目的”。如果文件是可读的,那么它是可读的。如果需要写入它的
用户
可以写入它,那么它是可写的。绝对不需要给每个人写权限,而忘记了
chmod
让它恢复正常正是跨国公司被黑客攻击的原因。不要这样做。永远。我写道。请看!
exports.findOrCreateUser = function (sess, accessToken, extra, googleUser) {
        googleUser.refreshToken = extra.refresh_token;
        googleUser.expiresIn = extra.expires_in;

        var promise = this.Promise();
        var user = exports.findUserByGoogleId(googleUser.id) || exports.newUser('google', googleUser);
        promise.fulfill(user);
        return promise;

}

exports.findUserByGoogleId = function(googleId) {
        for (var userID in global.users.usersById) if (googleId==global.users.usersById[userID].google.id) return global.users.usersById[userID];
        return false;
}