2017-05-19 2 views
0

私は現在のユーザーのために自分のユーザーの復号化されたデータを取得する方法に苦労しています。トークンの復号化されたデータを取得

私はログインした後、写真をキャプチャしてサーバーに送信することができます。私のコードに従えば、この要求にはトークンが必要であることがわかります。

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

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

Basiclyは、私は、このようなレジスタと、ログイン後に来るすべてのルートのためのトークンを必要とするapp.useを設定しようとする私のapp.js(起動ファイル)に関連する問題を抱えています

私の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.' 
     }); 
    } 
} 

ルータ指数(認証へと写真集の接続ファイル)

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を入力しません、何が間違っていますか?

+0

はあなたが – MSekrst

+0

が更新され、あなたのアプリにルータを接続しているコードの一部を提供してくださいすることができ、私の認証がうまく機能し、私はそれがない罰金eveything、ちょうどトークン認証写真を投稿することができますjwtPermissionはまだ動作していないので、基本的に1を実行する必要があります。 –

答えて

0

ルートを処理する関数の前にトークン検証ミドルウェアを追加できます。たとえば:

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

は動作しません。彼はまだトークンなしでもfotoを追加できます.jwtAuthenticationには入りません。 –

関連する問題