我在使用每一个身份验证时都遇到了严重的问题。我所需要的就是facebook登录。为此,我尝试使用everyauth的示例。一旦我进行了facebook身份验证,我如何才能检查用户是否登录/获取他的facebook信息的每个页面。我所做的是
var exp = require('express');
var app = exp.createServer();
var conf = require('/Users/lakeshkansakar/clicker/node_modules/everyauth/example/conf')
var everyauth = require('everyauth');
everyauth.debug = true;
var usersById = {};
var nextUserId = 0;
function addUser (source, sourceUser) {
var user;
user = usersById[++nextUserId] = {id: nextUserId};
user[source] = sourceUser;
return user;
}
var usersByFbId = {};
var usersByTwitId = {};
everyauth.everymodule
.findUserById( function (id, callback) {
callback(null, usersById[id]);
});
everyauth
.facebook
.appId(conf.fb.appId)
.appSecret(conf.fb.appSecret)
.findOrCreateUser( function (session, accessToken, accessTokenExtra, fbUserMetadata) {
return usersByFbId[fbUserMetadata.id] || (usersByFbId[fbUserMetadata.id] = addUser('facebook', fbUserMetadata));;
})
.redirectPath('/');
everyauth
.twitter
.consumerKey(conf.twit.consumerKey)
.consumerSecret(conf.twit.consumerSecret)
.findOrCreateUser( function (sess, accessToken, accessSecret, twitUser) {
return usersByTwitId[twitUser.id] || (usersByTwitId[twitUser.id] = addUser('twitter', twitUser));;
})
.redirectPath('/');
在每次get请求中,我都会尝试检查everyauth.loggedIn是否为真。但是,everyauth.loggedIn显示为未定义。为甚麽呢?如何检查用户是否已使用facebook登录?
发布于 2013-01-10 02:52:30
我不确定这是否会有帮助,但我研究了EveryAuth和Passport,并能够非常快地为Facebook和谷歌实现Passport。它看起来像是一种更简洁的身份验证实现。
http://passportjs.org/
发布于 2013-01-25 03:37:31
一旦您登录,您将被重定向到.redirectPath('/');
中提到的"/“。
在"/“的路由中,您可以检查everyauth.loggedIn
。
你可以在这里看到更多细节..How can I check if a user is already logged in? (everyauth, node.js)
希望这能有所帮助!
https://stackoverflow.com/questions/14097510
复制相似问题