everyauthの使用に深刻な問題があります。必要なのは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がtrueであるかどうかを確認しようとしました。ただし、everyauth.loggedInは未定義であることが示されています。なんでそうなの?ユーザーがFacebookを使用してログインしたかどうかを確認するにはどうすればよいですか?