2017-05-24 15 views
2

저는 nodejs에 익숙하며 mi 사이트의 일부 기능을 처리하기 위해 hapijs와 API를 만들고 있습니다. api와 같은 기본 URL을 만들 수 있기를 원합니다. * 모든 것을 만듭니다. 다른 API로 시작하는 URL을/어떤 검증을 통해 서 통과하지만, 한 번만 그렇게, 이것은 내가 지금까지 무엇을 가지고 :hapijs로 기본 경로 필터 만들기

server.route([ 
      { 
       method: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], 
       path: "/api/*", 
       handler: function(request, reply){ 
        is_authorized = auth(request.raw.req.headers['Authorization']); 
        if(!is_authorized){ 
         reply(response.generate_json(null, 'no autorizado', 'UNAUTHORIZED')).code(401); 
        } 
       } 
      } 
     ]); 

을하지만이 작동하지 않는, 내가 API/소켓 같은 다른 URL을 호출 할 때/그것이 승인되지 않은 경우에도 그냥 전달합니다 .... 나는 hapijs에서 이것을 얻을 수있는 방법은 무엇입니까 ??

+0

당신이 [인증에 튜토리얼] (https://hapijs.com/ 봤어하기 위해 더 info.happy 필요한 경우 prehandler 후크

server.ext('onPreHandler', (request, reply) => { if(request.path.startsWith("/api/")) { is_authorized = auth(request.raw.req.headers['Authorization']); if(!is_authorized) { reply(response.generate_json(null, 'no autorizado', 'UNAUTHORIZED')).code(401); } else { return reply.continue(); } } else { return reply.continue(); } }); 

에 사용해야합니다 tutorials/auth? lang = en_US)? 모든 라우트가 인증에 사용할 수있는 단일 기능을 설정하는 f}을 설명합니다. – Cuthbert

+0

옙 내가 이것을 게시 한 후에 .... 인증 스키마와 인증 전략을 작성하여 원하는 모든 경로에 인증을 설정할 수 있으며 인증하지 않은 사용자는 .... 답변 해 주셔서 감사합니다! – fr3d0

+0

굉장해! 여기에 답변을 게시하고 동의해야합니다! – Cuthbert

답변

1

당신은 당신이