如何将 hapi auth 插件变成可选插件
how to turn a hapi auth plugin to be optional
我想使用 hapi jwt token auth 插件 https://github.com/ryanfitz/hapi-auth-jwt 但要创建一个带有可选身份验证的路由。我怎样才能防止路由返回 401,而是继续执行 null request.auth.credentials。
我希望使用它的所有其他路由保持相同的实现,即在未经过身份验证的请求上返回 401。
server.register(require('hapi-auth-jwt'), function (error) {
server.auth.strategy('token', 'jwt', {
key: privateKey,
validateFunc: validate
});
//make this one allow anonymous while also reading logged in credentials
server.route({
method: 'GET',
path: '/',
config: {
auth: 'token'
}
});
server.route({
method: 'GET',
path: '/mystuff',
config: {
auth: 'token'
}
});
});
server.start();
您可以在路由配置中将其设置为可选:
server.route({
method: 'GET',
path: '/',
config: {
auth: {
strategy: 'token',
mode: 'optional'
}
}
});
模式可以是 true
、false
、required
、optional
或 try
。有关详细信息,请参阅 authentication tutorial。
除了optional
路由的auth配置,你还可以使用try
.
server.route({
method: 'GET',
path: '/',
config: {
auth: {
strategy: 'token',
mode: 'try'
}
}
})
两者的区别
optional
:不需要身份验证凭据,但如果提供则需要有效
try
:如果用户提供无效的身份验证凭据,他们仍然会被接受,用户将继续使用路由处理程序
我想使用 hapi jwt token auth 插件 https://github.com/ryanfitz/hapi-auth-jwt 但要创建一个带有可选身份验证的路由。我怎样才能防止路由返回 401,而是继续执行 null request.auth.credentials。
我希望使用它的所有其他路由保持相同的实现,即在未经过身份验证的请求上返回 401。
server.register(require('hapi-auth-jwt'), function (error) {
server.auth.strategy('token', 'jwt', {
key: privateKey,
validateFunc: validate
});
//make this one allow anonymous while also reading logged in credentials
server.route({
method: 'GET',
path: '/',
config: {
auth: 'token'
}
});
server.route({
method: 'GET',
path: '/mystuff',
config: {
auth: 'token'
}
});
});
server.start();
您可以在路由配置中将其设置为可选:
server.route({
method: 'GET',
path: '/',
config: {
auth: {
strategy: 'token',
mode: 'optional'
}
}
});
模式可以是 true
、false
、required
、optional
或 try
。有关详细信息,请参阅 authentication tutorial。
除了optional
路由的auth配置,你还可以使用try
.
server.route({
method: 'GET',
path: '/',
config: {
auth: {
strategy: 'token',
mode: 'try'
}
}
})
两者的区别
optional
:不需要身份验证凭据,但如果提供则需要有效try
:如果用户提供无效的身份验证凭据,他们仍然会被接受,用户将继续使用路由处理程序