2017-05-24 78 views
2

我是新來的nodejs,我正在做一個api與hapijs來處理mi站點的一些功能,我希望能夠製作一個像api/*這樣的基礎URL並使所有其他網址與API啓動/單程通過量的一些驗證,但只有這樣做,有一次,這是我到目前爲止有:使用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); 
        } 
       } 
      } 
     ]); 

,但它不工作,當我調用任何其它的URL一樣的API /插座/無論它只是通過即使它沒有被授權....有沒有什麼辦法可以在hapijs中實現這一點?

+0

你看的[關於認證教程(https://hapijs.com/上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(); } }); 

使用教程/ AUTH?LANG = EN_US)?它描述瞭如何設置所有路由可用於認證的單一功能。 – Cuthbert

+0

是的,我做了後,我發佈此....通過創建一個身份驗證架構和身份驗證策略,您可以設置身份驗證到所有你想要的路由,而不是驗證那些你不....感謝您的答覆! – fr3d0

+0

真棒!你應該在這裏發佈答案並接受它! – Cuthbert

回答

1

你,如果你需要任何進一步的info.happy幫助