johayo-jwt

0.2.1 • Public • Published

Johayo JWT

기존 JWT 미들웨어를 사용하여, express에서 사용하기 편하게 만들었습니다. JWT에 대한 설명은 Go to jwt.io에서 확인해보시면 됩니다.

설치

$ npm install johayo-jwt

업데이트

jsonwebtoken 버젼업.

사용

제가 만든 jwt는 한번더 암호화를 진행하여 보안에 조금 신경 쓴 타입입니다. 그리고 만료시간을 두어 좀더 효과적으로 사용 가능하게 하였습니다. 복호화한 후 정보들은 설정을 따로 하지 않으면 'req.user'에 저장됩니다.

1. 설정

var johayoJwt = require("johayo-jwt");
 
app.use(johayoJwt({
    /* jwt 토큰의 데이터부분을 한번더 암호화 할때 쓰는 암호화키 */
    tokenSecret: "SecretKey",
    /* jwt 자체 암호화 키 */
    jwtSecret: "SecretKey",
    /* jwt 암호화 알고리즘(디폴트: HS256) */
    algorithm: "HS256",
    /* 만료시간 초단위 (디폴트: 3600 - 1시간) */
    expireTime: 3600,
    /* 복호화 한후 정보 저장위치(디폴트: req.user) */
    userProperty: "user"
}))

2. 복호화

app.get('/', johayoJwt.verify, function(req, res){
    console.log(req.user);
})

3. 암호화

johayoJwt.encode(data, expireTime);

expireTime 없으면 기존 설정한데로 들어간다.

4. 에러

에러는 전부 throw로 처리 되며 복호화 시 error status는 401로 셋팅 됩니다. 에러 메세지는 jsonwebtoken의 에러 메시지를 참고 하시면 됩니다. 그외 에러메세지는 아래와 같습니다.

  • Format is Authorization: Bearer 'token'
  • req.headers.authorization was not found

5. 기존 jsonwebtoken 다른점

자주 사용하는 express에서 사용하기 편하게 만들었으며, 만료시간을 필수로 놓게 해놨습니다. 그리고 jsonwebtoken를 이용한 암호화 한 것을 한번더 암호화 하는 방식을 채택했습니다. jwt 전체를 암호화 하지는 않고 jwt에서 base64로 암호화한 claim json부분을 한번 더 aes 256 cbc 암호화 알고리즘으로 암호화 하였습니다.

Package Sidebar

Install

npm i johayo-jwt

Weekly Downloads

1

Version

0.2.1

License

none

Last publish

Collaborators

  • mayajuni