admin-on-rest 中的身份验证和 OAuth2 实现
Authentication and OAuth2 implementation in admin-on-rest
首先,我要感谢您在 admin-or-rest 中为此模板所做的出色工作。
我想问一下是否有一个简单的解决方法来实施 oauth2
身份验证。
有一个关于如何实现 basic JWT Authentication 的示例,但我无法弄清楚我将如何处理 401 错误以便按照 oAuth2 中的描述处理刷新令牌。
有什么方法可以应用中间件吗?我过去曾尝试 redux-api-middleware 以完全控制我的操作和 http 处理,但是一旦除登录之外的所有调用都被自动处理,这就无法应用于此系统。
这在 admin-on-rest 1.0 中已更改,文档试图更清楚地说明如何实现您想要做的事情:
// in src/authClient.js
import { AUTH_LOGIN, AUTH_LOGOUT, AUTH_ERROR } from 'admin-on-rest';
export default (type, params) => {
if (type === AUTH_LOGIN) {
// ...
}
if (type === AUTH_LOGOUT) {
// ...
}
if (type === AUTH_ERROR) {
const { status } = params;
if (status === 401 || status === 403) {
localStorage.removeItem('token');
return Promise.reject();
}
return Promise.resolve();
}
return Promise.resolve();
};
更多信息请见https://marmelab.com/admin-on-rest/Authentication.html#catching-authentication-errors-on-the-api
首先,我要感谢您在 admin-or-rest 中为此模板所做的出色工作。
我想问一下是否有一个简单的解决方法来实施 oauth2
身份验证。
有一个关于如何实现 basic JWT Authentication 的示例,但我无法弄清楚我将如何处理 401 错误以便按照 oAuth2 中的描述处理刷新令牌。
有什么方法可以应用中间件吗?我过去曾尝试 redux-api-middleware 以完全控制我的操作和 http 处理,但是一旦除登录之外的所有调用都被自动处理,这就无法应用于此系统。
这在 admin-on-rest 1.0 中已更改,文档试图更清楚地说明如何实现您想要做的事情:
// in src/authClient.js
import { AUTH_LOGIN, AUTH_LOGOUT, AUTH_ERROR } from 'admin-on-rest';
export default (type, params) => {
if (type === AUTH_LOGIN) {
// ...
}
if (type === AUTH_LOGOUT) {
// ...
}
if (type === AUTH_ERROR) {
const { status } = params;
if (status === 401 || status === 403) {
localStorage.removeItem('token');
return Promise.reject();
}
return Promise.resolve();
}
return Promise.resolve();
};
更多信息请见https://marmelab.com/admin-on-rest/Authentication.html#catching-authentication-errors-on-the-api