首页 > 解决方案 > 如何存储具有不同到期时间的 oauth2 刷新令牌列表?

问题描述

在我的客户端应用程序(vuejs)中,用户可以拥有多个具有不同访问令牌和刷新令牌的帐户,因此我将它们作为数组保存在本地存储和 cookie 中,但是当我将刷新令牌存储在 cookie 中的一个数组中时,我不能放不同他们每个人的到期时间。我应该如何进行这项工作?或存储多个刷新令牌的任何不同想法?

刷新令牌数组

refreshTokensList = [{ accountId: 'xxxx', refreshToken: 'yyyy' }, { accountId: 'qqqq', refreshToken: 'rrrr' }]

我将它们设置如下

const setRefreshToken = (token, accountId) => {
    let refreshTokensList = JSON.parse(
        JSON.stringify(getCookie(refreshTokens)),
    );

    const item = refreshTokensList.find((rt) => rt.accountId === accountId);

    if (!item) {
        refreshTokensList.push({ accountId, token });
    }
    setCookie(refreshTokens, refreshTokensList, 2);
};

标签: vue.jsoauth-2.0refresh-token

解决方案


测试一下清空cookie一次,然后设置新数据但我认为它不起作用

function del_cookie(refreshTokensList) {
   document.cookie = refreshTokensList + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
}
我觉得问题在于 cookie 占用的内存量因为它占用的容量很小,即 4096 字节并且您无法存储,无法在其上设置数据并且您不会收到任何错误

我的建议是对多个刷新令牌使用 localStorage 如果你愿意,我可以完全向你解释


推荐阅读