Как я могу проверить, если пользователь уже вошел в систему? (everyauth, node.js) - PullRequest
3 голосов
/ 27 января 2012

До сих пор я использовал аутентификацию на стороне клиента. Я только что настроил серверную сторону, и она прекрасно работает, но как я могу сделать что-то вроде FB.getLoginStatus (что я делал на стороне клиента), когда страница загружается?

Если пользователь уже вошел в систему, я не хочу снова проходить через него.

Спасибо за объяснение!

Ответы [ 3 ]

3 голосов
/ 27 января 2012

Из документации

Everyauth также предоставляет удобные методы для ServerRequest требование к инстанции Из любой области, которая имеет доступ к req, вы получаете следующие удобства и методы получения:

req.loggedIn - логический метод получения, который сообщает вам, что запрос авторизованный пользователь

req.user - документ пользователя, связанный с сессия

req.logout() - очищает данные аутентификации

В экспресс-просмотрах:

Если вы используете экспресс, в Everyauth есть полезная динамика хелперы. Чтобы включить их:

var express = require('express')
, everyauth = require('everyauth') 
, app = express.createServer();
everyauth.helpExpress(app); 

Тогда из ваших взглядов вы иметь доступ к следующим вспомогательным методам, прикрепленным к помощнику, everyauth:

everyauth.loggedIn
0 голосов
/ 09 мая 2013

Если вы используете шаблон Jade, статус входа пользователя может быть проверен с помощью следующего кода в файле .jade, например - home.jade

if (!everyauth.loggedIn) // <-----
    a(href="/your_url_here/") log in with facebook
else
    p Welcome <username>
0 голосов
/ 27 января 2012

Я бы сделал что-то подобное на node.js:

var userlogin = function () {
       var req = this.request
          ,res = this.response
          ,login = req.body
          ,username = login.username
          ,password = login.password;

      if(username === 'tester' && password === '12345'){
         req.session.user_id = xxxxxx;
         res.redirect('/');
      }else{
        res.redirect('/login');
      }

    }
    var checkAuth = function(fn_auth, fn_unauth){
      var req = this.request
          ,res = this.response
          ,unauthCallback;

      if(req.session.user_id){
        fn_auth(); //execute fn_auth if user is logged in. callback can be set to redirect to root path '/'
      }else{
          fn_unauth(); //execute fn_unauth calback which bring user to login path '/login'
        } 
      }
    }

По сути, просто перенаправьте, когда пользователь уже вошел в систему. Надеюсь, это поможет?

...