我使用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', {});
});
这三条路线要求用户通过Google Auth对我的网站进行身份验证。我的问题是,如何允许匿名用户访问我网站中的某些视图,但需要在其他视图中进行身份验证?我只是在authentication docs的任何地方都看不到它。似乎全部或全部都没有。我错过了什么吗?
答案 0 :(得分:0)
您正在查看身份验证,但您要问的是授权。它上面的Feathers docs似乎表明它们基于服务而安全。
如果这对您不起作用,您仍然可以使用Express中间件来保护特定路由。
答案 1 :(得分: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阅读他们的网页。