我正在使用Node模块everyauth
与Twitter进行身份验证。目前,用户必须使用重定向路径前往/auth/twitter/
进行身份验证。
问题是重定向路径重新加载页面,这打破了我构建的“单页应用程序”结构。是否可以在“一页”界限内保持Twitter的身份验证?
答案 0 :(得分:1)
你不能这样做,你需要打开一个新页面(但你可以打开一个弹出窗口,例如让Twitter重定向回一个关闭弹出窗口的页面)。
答案 1 :(得分:0)
不确定这是否是您正在寻找的,我也在构建单页应用。重定向是不可避免的,但是用户转到twitter,进行身份验证并返回到同一页面,但我根据用户状态加载不同的数据,因此用户可以获得通用内容或其保存的内容。
// in server.js
app.get('/', routes.index);
// in routes.js, required in server.js
exports.index = function(req, res){
if(req.loggedIn){
getData(function(data){
res.render('home', { data:, data })
});
} else {
res.render('home', { data: false })
}
};
我的方案中的getData()会对用户进行一些检查以查看其访问级别,然后从我们的API预加载内容并将其作为JSON传递到模板中。然后,当应用程序呈现它时,它只查找可用的JSON。