2017-11-14 2 views
0

나는 nodej를 연구하기 시작했는데, 문제가 발생했습니다. '우편 배달부'에 로그인을 게시하면 성공 메시지가 표시되지만 토큰 컨텐츠는 비어 있습니다. 이 내 server.js 코드 :nodejs 토큰이 비어 있습니다.

var express = require('express'); 
var bodyParser = require('body-parser'); 
var morgan = require('morgan'); 
var config = require('./config'); 
var mongoose = require('mongoose'); 
var app = express(); 
....... 
app.use(bodyParser.urlencoded({ 
    extended: true 
})); 
app.use(bodyParser.json()); 

이 내 API 코드 :

var jsonwebtoken = require('jsonwebtoken'); 

function createToken(user){ 
    jsonwebtoken.sign({ 
     _id: user._id, 
     name: user.name, 
     username: user.username 
    }, secretKey,{ 
     expiresIn: '144000000m' 
    }); 

    return jsonwebtoken; 
}; 
    api.post('/login',function(req,res){ 

     User.findOne({ 
      username: req.body.username 
      }).select('password').exec(function(err,user){ 
       if (err) 
       { 
        res.send(err); 
       } 
       else if (!user) { 
        res.send({message : "User dosen't exist."}); 
       } 
       else if (user){ 
        var validPassword = user.comparePassword(req.body.password); 
        if (!validPassword) 
        { 
         res.send({ message : "Password is incorrect." }); 
        } 
        else 
        { 
         ///// token 
         var token= createToken(user); 
         if (token) 
         { 
         res.json({ 
          success: true, 
          message: "Successfuly login!", 
          token: token 
         }); 
         } 

         else 
         { 
          console.log('error'); 
         } 
        } 
       } 
      }) 
     }); 

끝에 사실 나는 '우편 배달부'에서이 메시지를 얻을 :

{ 
    "success": true, 
    "message": "Successfuly login!", 
    "token": {} 
} 

보시다시피 토큰이 비어 있습니다. 덕분에 !

, 당신이 가져온 라이브러리 대신 토큰 자체를 반환 예컨대 필요 createToken()에서

답변

0

:

function createToken(user){ 
    return jsonwebtoken.sign({ 
     _id: user._id, 
     name: user.name, 
     username: user.username 
    }, secretKey,{ 
     expiresIn: '144000000m' 
    }); 
} 
관련 문제