繁体   English   中英

将Web令牌从后端传递到前端(Node.js + Express传递到AngularJS)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM