到目前为止,我一直在使用客户端身份验证。我刚刚设置了服务器端everyauth,它工作得很好但是当页面加载时我怎么能做类似的事情FB.getLoginStatus(我在客户端做了什么)?
如果用户已经登录,我不想让他们再次完成该过程。
感谢您的解释!
到目前为止,我一直在使用客户端身份验证。我刚刚设置了服务器端everyauth,它工作得很好但是当页面加载时我怎么能做类似的事情FB.getLoginStatus(我在客户端做了什么)?
如果用户已经登录,我不想让他们再次完成该过程。
感谢您的解释!
从文档
everyauth 还为 ServerRequest 实例 req 提供了方便的方法。从可以访问 req 的任何范围内,您都可以获得以下便利的 getter 和方法:
req.loggedIn- 一个布尔 getter,告诉您请求是否来自登录用户
req.user- 与会话关联的用户文档
req.logout()- 清除您的身份验证数据的会话
在快速视图中:
如果你使用 express,everyauth 会附带一些有用的动态助手。要启用它们:
var express = require('express') , everyauth = require('everyauth') , app = express.createServer(); everyauth.helpExpress(app);然后,在您的视图中,您将可以访问附加到助手everyauth 的以下助手方法:
everyauth.loggedIn
我会在 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'
}
}
}
基本上只是在用户已经登录时重定向。希望有帮助吗?
如果您使用 Jade 模板,可以通过以下 .jade 文件中的代码检查用户的登录状态,例如 - home.jade
if (!everyauth.loggedIn) // <-----
a(href="/your_url_here/") log in with facebook
else
p Welcome <username>