簡體   English   中英

關注使用Everyauth

[英]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。 它看起來像一個更清晰的身份驗證實現。

http://passportjs.org/

登錄后,您將被重定向到“。”,如.redirectPath('/');

在“/”的路由中,您可以檢查everyauth.loggedIn

您可以在此處查看更多詳細信息.. 如何檢查用戶是否已登錄? (everyauth,node.js)

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM