2

首先,我要感谢您为这个模板在admin-or-rest中所做的出色工作。

我想问一下是否有一个简单的解决方法来实现oauth2身份验证。

有一个关于我们如何实现基本 JWT 身份验证的示例,但我无法弄清楚我将如何处理 401 错误以处理刷新令牌,如 oAuth2 中所述。

有没有办法应用中间件?我过去曾尝试过redux-api-middleware以完全控制我的操作和 http 处理,但是一旦自动处理除登录之外的所有调用,这将无法应用于此系统。

4

1 回答 1

0

这在 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# catch-authentication-errors-on-the-api

于 2017-04-26T14:34:22.117 回答