2017-02-15 48 views
0

我已經用Feathers.js構建了一個應用程序。我的網站有這樣定義的路線:在Feathers.js中驗證路線

app.get('/login', function(req, res) { 
    res.render('views/login.html', {});    
});  

app.get('/about', function(req, res) { 
    res.render('views/about.html', {});    
});  

app.get('/contact', function(req, res) { 
    res.render('views/contact.html', {});    
});  

app.get('/', function(req, res) { 
    res.render('views/index.html', {});    
});  

我需要這四條路線以供未經驗證的用戶訪問。不過,我也有以下途徑:

app.get('/dashboard', function(req, res) { 
    res.render('views/dashboard/index.html', {});    
});  

app.get('/dashboard/report', function(req, res) { 
    res.render('views/dashboard/report.html', {});    
});  

app.get('/registered', function(req, res) { 
    res.render('views/registered.html', {});    
});  

這三條路線需要用戶與我通過谷歌驗證網站進行身份驗證。我的問題是,我如何在我的網站的某些視圖上允許匿名用戶,但需要其他人的身份驗證?我只是在authentication docs的任何地方都看不到它。它似乎是全部或沒有。我錯過了什麼嗎?

回答

0

默認情況下資源/服務未鎖定。對於應該鎖定的/dashboard路由,您需要添加授權before掛鉤。

const auth = require('feathers-authentication').hooks; 

exports.before = { 
    all: [  
    auth.verifyToken(), 
    auth.populateUser(), 
    auth.restrictToAuthenticated() 
    ], 
    find: [], 
    get: [], 
    create: [], 
    update: [], 
    patch: [], 
    remove: [] 
}; 

參見:https://docs.feathersjs.com/getting-started/user-management.html爲例應用

我建議你閱讀Authorization他們的網頁也是如此。

0

您正在查看身份驗證,但是您詢問的是授權。它上面的Feathers docs似乎表明他們基於服務安全。

如果這對您不起作用,您仍然可以使用Express中間件來確保特定路由的安全。