登录令牌始终返回未授权

时间:2018-05-07 10:01:34

标签: node.js api express passport.js

我尝试在我的API中添加一些令牌,我的控制台中没有任何错误但是当我尝试使用postman whit路线时(邮件和密码)

http://localhost:3005/api/utilisateur/login

// '/v1/account/login'
api.post('/login', passport.authenticate(
    'local', {
        session: false,
        scope: []
    }), generateAccessToken, respond);

邮递员回到我身边:Unauthorized

我的完整authMiddleware:

import jwt from 'jsonwebtoken';
import expressJwt from 'express-jwt';

const TOKENTIME = 60 * 60 * 24 * 30 // 30 days
const SECRET = "f9ilOusçSE El;l3 m4ng3 d3:s pimOu55e!";

let authenticate = expressJwt({secret: SECRET});

let generateAccessToken = (req, res, next) => {
req.token = req.token || {};
req.token = jwt.sign({
    id: req.user.id,
}, SECRET, {
    expiresIn: TOKENTIME // 30 days
});
next();
}

let respond = (req, res) => {
res.status(200).json({
    user: req.user.username,
    token: req.token
});
}

module.exports = {
authenticate,
generateAccessToken,
respond
};

并且:

import mongoose from 'mongoose';
import {
Router
} from 'express';
import Utilisateur from '../model/utilisateur';
import bodyParser from 'body-parser';
import passport from 'passport';
import config from '../config';
import {
generateAccessToken,
respond,
authenticate
} from '../middleware/authMiddleware';
export default ({
config,
db
}) => {
let api = Router();

// CRUD - CREAT READ UPDATE DELETE

//'/api/match/add' // First Step Creat 
api.post('/add', (req, res) => {
    let newUti = new Utilisateur();
    newUti.name = req.body.name;
    newUti.email = req.body.email;
    newUti.password = req.body.password;
    newUti.nom = req.body.nom;
    newUti.prenom = req.body.prenom;
    newUti.pays = req.body.pays;
    newUti.codePostale = req.body.codePostale;
    newUti.adresse = req.body.adresse;
    newUti.telephone = req.body.telephone;
    newUti.sexe = req.body.sexe;
    newUti.admin = req.body.admin;
    newUti.dateCreationCompte = req.body.dateCreationCompte;
    newUti.dateDebutPeriodeEssai = req.body.dateDebutPeriodeEssai;
    newUti.dateFinPeriodeEssai = req.body.dateFinPeriodeEssai;
    newUti.dateDernierConnexion = req.body.dateDernierConnexion;
    newUti.dateDernierModificationMotDePasse = 
req.body.dateDernierModificationMotDePasse;
    newUti.nombreDeConnexion = req.body.nombreDeConnexion;
    newUti.adresseIpCreation = req.body.adresseIpCreation;
    newUti.dernierAdresseIpConnecte = req.body.dernierAdresseIpConnecte;
    newUti.emailVerifier = req.body.emailVerifier;

    newUti.save(err => {
        if (err) {
            res.send(err);
        }
        passport.authenticate(
            'local', {
                sesssion: false
            })(req, res, () => {
            res.json({
                message: "Utilisateur enregistré"
            });
        });
    });
});


// '/api/account/login'
api.post('/login', passport.authenticate(
    'local', {
        session: false,
        scope: []
    }), generateAccessToken, respond);


// /api/utilisateur/logout
api.get('/logout', authenticate, (req, res) => {
    res.logout();
    res.status(200).send('Succefully logged out ');
});

api.get('/me', authenticate, (req, res) => {
    res.status(200).json(req.user);
});


// Second Step READ 
//'/api/utilisateur' - Read 
api.get('/', (req, res) => {
    Utilisateur.find({}, (err, utilisateur) => {
        if (err) {
            res.send(err);
        }
        res.json(utilisateur);
    });
});

// /api/utilisateur/:id' - Read 1
api.get('/id/:id', (req, res) => {
    Utilisateur.findById(req.params.id, (err, utilisateur) => {
        if (err) {
            res.send(err);
        }

        res.json(utilisateur);
    });
});


// update ' /api/utilisateur/:id' 
api.put('/:id', (req, res) => {
    Utilisateur.findById(req.params.id, (err, utilisateur) => {
        if (err) {
            res.send(err);
        }
        utilisateur.name = req.body.name;
        utilisateur.email = req.body.email;
        utilisateur.password = req.body.password;
        utilisateur.nom = req.body.nom;
        utilisateur.prenom = req.body.prenom;
        utilisateur.pays = req.body.pays;
        utilisateur.codePostale = req.body.codePostale;
        utilisateur.adresse = req.body.adresse;
        utilisateur.telephone = req.body.telephone;
        utilisateur.sexe = req.body.sexe;
        utilisateur.admin = req.body.admin;
        utilisateur.dateCreationCompte = req.body.dateCreationCompte;
        utilisateur.dateDebutPeriodeEssai = req.body.dateDebutPeriodeEssai;
        utilisateur.dateFinPeriodeEssai = req.body.dateFinPeriodeEssai;
        utilisateur.dateDernierConnexion = req.body.dateDernierConnexion;
        utilisateur.dateDernierModificationMotDePasse = 
req.body.dateDernierModificationMotDePasse;
        utilisateur.nombreDeConnexion = req.body.nombreDeConnexion;
        utilisateur.adresseIpCreation = req.body.adresseIpCreation;
        utilisateur.dernierAdresseIpConnecte = 
req.body.dernierAdresseIpConnecte;
        utilisateur.emailVerifier = req.body.emailVerifier;
        utilisateur.save(err => {
            if (err) {
                res.send(err);
            }
            res.json({
                message: "Info utilisateur mise a jour "
            });
        });
    });
});



// 'v1/utilisateur/:id - Supprimer 
api.delete('/:id', (req, res) => {
    Utilisateur.remove({
        _id: req.params.id
    }, (err, utilisateur) => {
        if (err) {
            res.send(err);
        }
        res.json({
            message: "Utilisateur supprimé"
        });
    });
});

api.get('/pseudo/:name', (req, res) => {
    Utilisateur.find({
        name: req.params.name
    }, (err, utilisateur) => {
        if (err) {
            res.send(err);
        }
        res.json(utilisateur);
    });
});


return api;
};

这是我的第一个API,我按照教程,希望有人可以帮助我,你可以看到完整的项目:https://github.com/soosoo34/ParisSportifAPI

0 个答案:

没有答案
相关问题