在 Feathers.js 中验证路由
Authenticating Routes in 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', {});
});
这三个路径要求用户通过 Google Auth 在 my 站点进行身份验证。我的问题是,如何允许匿名用户访问我网站的某些视图,但要求对其他用户进行身份验证?我只是在 authentication docs 的任何地方都看不到它。好像是全部还是none。我错过了什么吗?
您正在查看身份验证,但您询问的是授权。它上面的 Feathers docs 似乎表明它们基于服务进行保护。
如果这对您不起作用,您仍然可以使用 Express 中间件来保护特定路由。
Resources/Services 默认不锁定。对于应该锁定的 /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 上的页面。
我用 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 在 my 站点进行身份验证。我的问题是,如何允许匿名用户访问我网站的某些视图,但要求对其他用户进行身份验证?我只是在 authentication docs 的任何地方都看不到它。好像是全部还是none。我错过了什么吗?
您正在查看身份验证,但您询问的是授权。它上面的 Feathers docs 似乎表明它们基于服务进行保护。
如果这对您不起作用,您仍然可以使用 Express 中间件来保护特定路由。
Resources/Services 默认不锁定。对于应该锁定的 /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 上的页面。