[英]Concerns in using everyauth
我在使用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登錄?
不確定這是否有幫助,但我研究了EveryAuth和Passport,並且能夠非常快速地為Facebook和Google實施Passport。 它看起來像一個更清晰的身份驗證實現。
登錄后,您將被重定向到“。”,如.redirectPath('/');
。
在“/”的路由中,您可以檢查everyauth.loggedIn
。
您可以在此處查看更多詳細信息.. 如何檢查用戶是否已登錄? (everyauth,node.js)
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.