2017-11-13 13 views
-2

저는 Angular 4를 프론트 엔드로 사용하고 MongoDB를 데이터베이스로 사용합니다. Express를 사용하여 API를 만들었습니다. 이제 로그인을 제외하고 모든 API를 인증해야하고 권한이없는 사용자가 API를 누르는 것을 방지하기 위해 등록해야합니다.Express API를 인증하는 가장 좋은 방법은 무엇입니까?

나는 이런 종류의 인증에 익숙하지 않으며 passport.js, jwt 등과 같은 많은 방법을 사용할 수 있습니다. 인증에 가장 적합한 방법을 선택하는 것이 매우 혼란 스럽습니다. 그러니 최선의 선택을 위해 약간의 의견을주십시오.

참고 : 신청서는 재정 관련 프로젝트와 관련이 없습니다. 따라서 높은 수준의 안전이 필요하지 않습니다. 당신은 NodeJS를 들어 Json Web Tokens

구현을 시도 할 수

+1

높은 수준의 안전이 필요하지 않은 경우 왜 어떤 것이 가장 좋을까요? 네가 원하는대로 골라라. – JJJ

+0

당신은 무엇에 관심이 있습니까? "최고"를 어떻게 정의합니까? – Paul

답변

0

nJwt이라는 사용할 수있는 NPM 패키지가있다. npm으로 설치할 수 있습니다.

사용 예 (단축)는 :

var njwt = require('njwt'); 
if (loginSuccessful) { 
    var payload = { 
         iss: 'your_domain_name', 
         iat: Math.round((Date.now()/1000)), 
         // Set expiration date to now +7200 seconds 
         exp: Math.round((Date.now()/1000)) + 7200, 
         username: username, 
         ip: ip 
       } 
    var token = njwt.create(payload,your_super_secret_key,'HS512').compact()); 
} else { 
// Login not successful, don't give key 
} 

당신은 사용자에게 토큰을 보낼 수 있습니다, 그리고 그들은 (예를 들어) 모든 요청에 ​​그것을 사용할 수 있습니다.

토큰은 7200 초 또는 2 시간 동안 유효합니다.