2016-11-07 50 views
0

我在製作一個nodejs,angular2應用程序。我想設置一個JWT認證,我使用express-jwt和jsonwebtoken,我的所有路由和應用程序按預期工作,只要我沒有設置express-jwt中間件那樣。如何設置express-jwt與angular2不阻止node_modules?

app.use(expressJWT({secret: 'hey-hey'}).unless({path: ['/api/login', '/api/signup', '/home', '/signup', '/login', '/']})); 

我得到以下錯誤:

GET http://localhost:3001/node_modules/core-js/client/shim.min.js 
login:13 GET http://localhost:3001/node_modules/zone.js/dist/zone.js 
login:14 GET http://localhost:3001/node_modules/reflect-metadata/Reflect.js 
login:15 GET http://localhost:3001/node_modules/systemjs/dist/system.src.js 
login:17 GET http://localhost:3001/systemjs.config.js 

基本上,我的應用程序有沒有查看在這些路線只認證。 我也嘗試在unless:路徑中包含這些路由,但沒有幫助。

我怎樣才能使這條路線可訪問,使用jwt?

+0

謝謝,它幫助。 – GaborH

+0

PLZ標記我的答案 –

回答

0

使用一個下列

app.use('/api', expressJwt({ secret: config.secret}).unless({path: [/^\/api\/members\/confirm\/.*/]})); 

,或者您也可以給,除非一個功能:

var myFilter = function(req) {return true;} 
app.use('/api', expressJwt({ secret: config.secret}).unless(myFilter)); 
+0

它來自這裏:http://stackoverflow.com/questions/30559158/handling-parameterised-routes-in-express-jwt-using-unless – GaborH

0

添加以下的,除非路徑:/^\/node_modules\/.*/ , /^\/app\/.*/

這是一個正則表達式,這需要從node_modules的所有文件和應用程序目錄。