Как я могу проверить, если пользователь уже вошел в систему? (everyauth, node.js)
До сих пор я использовал аутентификацию на стороне клиента. Я только что настроил серверную сторону и все работает отлично, но как я могу сделать что-то вроде FB.getLoginStatus
(что я делал на стороне клиента) при загрузке страницы?
Если пользователь уже вошел в систему, я не хочу снова проходить через него.
Спасибо за объяснение!
3 ответа
Из документации
everyauth также предоставляет удобные методы для экземпляра ServerRequest req. Из любой области, которая имеет доступ к req, вы получаете следующие удобные методы и методы:
req.loggedIn
- логический метод получения, который сообщает вам, был ли запрос зарегистрированным пользователем
req.user
- Пользовательский документ, связанный с сеансом
req.logout()
- очищает данные вашей аутентификации
В экспресс-просмотрах:
Если вы используете экспресс, EveryAuth поставляется с некоторыми полезными динамическими помощниками. Чтобы включить их:
var express = require('express') , everyauth = require('everyauth') , app = express.createServer(); everyauth.helpExpress(app);
Затем из ваших представлений вы получите доступ к следующим вспомогательным методам, прикрепленным к помощнику, каждый раз:
everyauth.loggedIn
Если вы используете шаблон Jade, статус входа пользователя может быть проверен с помощью следующего кода в файле.jade, например, home.jade.
if (!everyauth.loggedIn) // <-----
a(href="/your_url_here/") log in with facebook
else
p Welcome <username>
Я хотел бы сделать что-то вроде этого на 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'
}
}
}
В основном просто перенаправить, когда пользователь уже вошел в систему. Надеюсь, это поможет?