快速最佳实践,用于存储访问令牌

我正在开发一个应用程序,该应用程序使用通行证-facebook进行身份验证并为用户创建访问令牌,然后该应用程序可以使用此令牌进行API调用。没有帐户创建或数据库,只有提供令牌的Facebook登录名。

我遇到的问题是如何处理此令牌。令牌的有效期很短,我不确定最好的做法是管理令牌/在到期后生成新令牌。

到目前为止,我仅尝试将令牌存储为cookie。在考虑安全性的同时,是否还有更好的管理令牌的做法?

如果有什么用,这就是我到目前为止所拥有的:

server.js

...

app.get('/auth/facebook',passport.authenticate('facebook'));

app.get(
 '/auth/facebook/callback',passport.authenticate('facebook',{ failureRedirect: '/error' }),function(req,res) {
   res
     .cookie('token',req.user.token,{
       expires: new Date(Date.now() + 9999999),secure: true,httpOnly: true
     })
     .send('success');
 }
);

passport.js

module.exports = function(passport) {
  passport.use(
    new FacebookStrategy(
      {
        clientID: facebookID,clientSecret: facebookSecret,callbackURL: '/auth/facebook/callback'
      },function(accessToken,refreshToken,profile,done) {
        var user = {
          id: profile.id,token: accessToken
        };
        return done(null,user);
      }
    )
  );

  passport.serializeuser(function(user,done) {
    done(null,{
      token: user['token']
    });
  });

然后我像这样使用令牌:

user.js

router.get('/',async (req,res) => {
  graph.get(
    '/me?fields=id,name,email,birthday,posts.limit(5)',{ access_token: req.cookies['token'] },function(err,data) {
      res.json(data);
    }
  );
});
charlestri 回答:快速最佳实践,用于存储访问令牌

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3127883.html

大家都在问