1

以下のように、各 API に JWT 承認を実装しています。

auth.js

import expressJwt from 'express-jwt';
import compose from 'composable-middleware';

var validateJwt = expressJwt({
  secret: config.secrets.session
});

function isAuthenticated() {
    return compose()

    .use(function(req, res, next) {
       validateJwt(req, res, next);
    })
    .use(function(req, res, next) {

    User.find({
            where: {
         id: req.user.id
            }
    }).then(function(user){

            //Handle User
        }).catch(function(err){
            //Handle DB Error
        });
    });
}

index.js

import auth from '../../auth';
import express from 'express';
import controller from './user_group.controller';
import * as validators from './user_group.validations';

// Create router object
const router = express.Router();

// Get all user groups
router.get('/', [auth.isAuthenticated(), validators.index], controller.index);

JWT のエラー処理を除いて、すべて正常に動作しています。次のミドルウェアに移行する前にvalidateJwt(req, res, next);をどのように処理するかという機能がわかりません。Unauthorized Error stack

4

2 に答える 2

2

私は以下を使用してそれを行いました:

.use(function(err, req, res, next) {

  if(err) {
    return res.status(constants.INVALID_OR_NO_ACCESS_TOKEN.code).json({
      status: 'error',
      code: constants.INVALID_OR_NO_ACCESS_TOKEN.code,
      message: constants.INVALID_OR_NO_ACCESS_TOKEN.message
    }).end();
  }
  User.find({
    where: {
      id: req.user.id
    }
  })
于 2016-06-08T13:26:43.460 に答える