jwt.sign(payload, secretOrPrivateKey, [options, callback])
var jwt = require('jsonwebtoken');
var token = jwt.sign({ foo: 'bar' }, 'shhhhh');
jwt.sign(payload, secretKey)
에서 payload는 string형식이어야 한다.
If payload is not a buffer or a string, it will be coerced into a string using JSON.stringify.
jsonwebtoken - npm
그러나 mongodb 에서 생성된 id (user._id)는 string이 아니므로, mongoDB의 toHexString() 메서드를 사용하여 다음과 같이 형변환을 해주어야 한다.
출처: (3) 노드 리액트 기초 강의 #12 토큰 생성 with jsonwebtoken - YouTube
Create a new ObjectID instance
class ObjectID()
Arguments: id (string) – Can be a 24 byte hex string, 12 byte binary string or a Number.
Returns: object instance of ObjectID.
Return the ObjectID id as a 24 byte hex string representation
Returns: string return the 24 byte hex string representation.
Generate a 24 character hex string representation of the ObjectID
var Db = require('mongodb').Db,
MongoClient = require('mongodb').MongoClient,
Server = require('mongodb').Server,
ReplSetServers = require('mongodb').ReplSetServers,
ObjectID = require('mongodb').ObjectID,
Binary = require('mongodb').Binary,
GridStore = require('mongodb').GridStore,
Grid = require('mongodb').Grid,
Code = require('mongodb').Code,
BSON = require('mongodb').pure().BSON,
assert = require('assert');
// Create a new ObjectID
var objectId = new ObjectID();
// Verify that the hex string is 24 characters long
assert.equal(24, objectId.toHexString().length);