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