Backend - jsonwebtoken과 MongoDB 사용 시 주의사항

BigbrotherShin·2020년 2월 12일
4

Backend

목록 보기
1/15
post-thumbnail

jsonwebtoken 라이브러리

Usage

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

MongoDB- ObjectID()

Constructor

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.

toHexString

Return the ObjectID id as a 24 byte hex string representation

toHexString()

Returns: string return the 24 byte hex string representation.

Examples

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);

출처: ObjectID() — MongoDB Node.JS Driver 1.4.9 documentation

profile
JavaScript, Node.js 그리고 React를 배우는

0개의 댓글