使用每个功能时的注意事项

Concerns in using everyauth

本文关键字:注意事项 功能      更新时间:2023-09-26

我在使用每个功能时都遇到了严重的问题。所有我需要的是facebook登录。为了说明这一点,我试图用每个人的例子。一旦我做了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请求中,我然后尝试检查是否每一个。loggedIn是否为真。然而,everyauth。loggedIn显示为未定义。为什么会这样呢?如何检查用户是否已使用facebook登录?

不确定这是否有帮助,但我研究了EveryAuth和Passport,并且能够很快为Facebook和Google实现Passport。它看起来是一个更简洁的身份验证实现。

http://passportjs.org/

一旦您登录,您将被重定向到.redirectPath('/');中提到的"/"。

在"/"的路由中,您可以检查everyauth.loggedIn

你可以在这里看到更多的细节。如何检查用户是否已登录?(everyauth node . js)

希望这对你有帮助!