[英]Passing web token from backend to frontend (Node.js + Express to AngularJS)
作为JavaScript的新手,我试图在Node.js + Express / Angular.js应用程序中实现Amazon登录。
这是来自Node.js Passport身份验证中间件示例的片段:
app.get('/auth/facebook/callback',
passport.authenticate('service', { session: false }),
function(req, res) {
// Successful authentication, redirect home.
// I have access to web token here
res.redirect('/');
});
问题是function(req, res)
假设登录后我的AngularJS应用托管在http://example.com上 ,我该如何修改上面的代码以将在Node.js后端的function(req, res)
中获得的Web令牌传递给AngularJS前端。通过Amazon,该应用程序将重定向到http://example.com/auth/facebook/callback URL。
我假设您正在使用Express。 据我了解,访问令牌将存储在req变量中的某个位置(例如req.session.amazon ....),我不确定自己是否使用过Amazon。 然后可以将其传递到Express渲染器并包含在模板中。
res.render('myTemplate', {
amazon_access_token : req.session.amazon.token // example
});
然后在您的模板中(本例中为my模板.hbs文件中的把手):
<script>
var myAccessToken = {amazon_access_token};
// Angular code
</script>
好的。 第一种方法是将其设置在如下所示的Cookie中。 我仍然想知道其他选择。
app.get('/auth/facebook/callback',
passport.authenticate('facebook', {
session: true
}), function(req, res) {
res.cookie('token', '1234567890', {
maxAge: 3600000
});
res.redirect('/');
}
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.