我正在使用 Node 模块everyauth
通过 Twitter 进行身份验证。目前,用户必须/auth/twitter/
使用重定向路径进行身份验证。
问题是重定向路径会重新加载页面,这破坏了我构建的“单页应用程序”结构。是否可以将 Twitter 的身份验证保持在“一页”范围内?
你不能这样做,你需要打开一个新页面(但你可以打开一个弹出窗口,例如让 Twitter 重定向回关闭该弹出窗口的页面)。
不确定这是否是您正在寻找的,我也在构建一个单页应用程序。重定向是不可避免的,但是用户转到 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。