我已经构建了一个带有羽毛的应用程序。我的网站有这样定义的路线:
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通过 my 网站对用户进行身份验证。我的问题是,我如何允许匿名用户在网站中的某些视图中使用,但需要在其他网站中进行身份验证?我只是在身份验证文档中的任何地方都看不到它。似乎全部或全部。我想念什么吗?
默认情况下不会锁定资源/服务。对于应该锁定的/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 for示例应用程序
我建议还要阅读他们的授权页面。
您正在研究身份验证,但是您要问的是授权。上面的羽毛文档似乎表明它们是根据服务确保的。
如果那对您不起作用,您仍然可以使用Express中间件来保护特定的路线。