2012-01-27 3 views
3

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

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

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

ответ

0

Я хотел бы сделать что-то вроде этого на 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' 
     } 
     } 
    } 

В основном только переадресовать, когда пользователь уже вошел в Надежду, что помогает?

3

От documentation

everyauth также предоставляет удобные методы для экземпляра REQ ServerRequest . Из любого объема, который имеет доступ к REQ, вы получите следующие удобства получения и методы:

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

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

req.logout() - очищает Sesion ваших данных AUTH

в пределах экспресс-Vi ews:

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

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

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

everyauth.loggedIn 
+0

Что бы это выглядело, если мы не использовали экспресс? – fancy

+0

Вы используете Connect? Everyauth предназначен для использования с Connect & Express. Первый пример должен по-прежнему работать. –

+1

'app.get ('/', function (req, res) { if (req.loggedIn) {res.send ('вы вошли в систему')} });' – fancy

0

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

if (!everyauth.loggedIn) // <----- 
    a(href="/your_url_here/") log in with facebook 
else 
    p Welcome <username> 
Смежные вопросы