获取令牌解密数据

时间:2017-05-19 15:18:18

标签: javascript node.js express

我正在努力解决如何为当前用户获取用户解密数据的问题,基本上每次用户登录时他都会获得一个令牌。

登录后,我可以拍摄照片并将其发送到服务器,按照我的代码,您可以看到此请求需要令牌才能工作。

基本上我有一个与我的app.js(起始文件)相关的问题我尝试设置一个app.use,它需要一个令牌,用于注册和登录后的所有路由,如下所示:

app.use('/',require('./routes/index'));

app.use(jwtPermission);
router.use('/fotos',fotos);

我的jwt权限文件:

var jwt = require('jsonwebtoken');
var jwtConfig = require('../config/jwt');

module.exports = function(req, res, next) {
    console.log("entered");

    // check header or url parameters or post parameters for token
    var token = req.body.token || req.query.token || req.headers['x-access-token'];
          console.log(req.headers['x-access-token']);
    // decode token
    if (token) {
        // verifies secret and checks exp
        jwt.verify(token,jwtConfig.secret, function (err, decoded) {
            if (err) {
                return res.json({ success: false, message: 'Failed to authenticate token.' });
            } else {
                // if everything is good, save to request for use in other routes
                req.decoded = decoded;
                next();
            }
        });
    } else {
        // if there is no token
        // return an error
        return res.status(403).send({
            success: false,
            message: 'No token provided.'
        });
    }
}

路由器索引(与身份验证和fotos文件的连接)

var express = require('express');
var router = express.Router();

router.use(function timeLog(req, res, next) {
 console.log('Time: ', Date());
 console.log('Request Type:', req.method);
 console.log('Request URL:', req.originalUrl);
 next(); //passa a solicitação para a próxima função de middleware na pilha
});

router.use('/',require('./authentication'))
router.use('/fotos',require('./fotos'));

router.use(function(req,res,next){
    return res.status(404).json({Error:"Invalid Url"});
})

module.exports = router;

当我指向/ fotos时它没有像我想要的那样进入jwtPermission,出了什么问题?

1 个答案:

答案 0 :(得分:0)

您可以在处理某些路线的功能之前添加令牌验证中间件。例如:

router.use('/fotos', jwtAuthentication, require('./fotos'));