Nuxt Auth 使用访问令牌而不是刷新令牌

发布于 2025-01-19 19:16:28 字数 1374 浏览 1 评论 0原文

我的问题如下:

登录后,我的访问令牌和刷新令牌被存储,我可以使用 this.$auth.strategy.token.get() 访问它们。

当我的访问令牌过期时,我的应用程序调用 /token/refresh我在后端创建的端点。但是,nuxt auth 使用过期的访问令牌,而不是发送refresh_token。如何告诉 Nuxt auth 默认使用刷新令牌?

我的 nuxt.config.js :

auth: {
    localStorage: false,
    redirect: {
        login: "/login/",
        logout: "/",
        home: "/search/",
    },
    watchLoggedIn: true,
    strategies: {
        local: {
            scheme: 'refresh',
            token: {
                property: 'access_token',
                global: true
            },
            refreshToken: {
                property: 'refresh_token',
                data: 'refresh_token',
                tokenRequired: true,
                maxAge: 60 * 60 * 24 * 30,
                grantType: 'refresh_token'
               
            },
            user:{
                property: false,
                // autoFetch: false
            },
            endpoints: {
                login: { url: '/login', method: 'post' },
                refresh: { url: '/token/refresh', method: 'get', grant_type:'refresh_token'},
                logout: false,
                user: { url: '/currentuser', method: 'get', propertyName: false }
            },
            tokenRequired: true,
            tokenType: 'Bearer',
        }
    }
}

My issue is as follows:

After logging in my acces token and refresh token are stored and I can access them with this.$auth.strategy.token.get()

When my access token is expired, my app calls the /token/refresh endpoint that I created in my backend. However, instead of sending the refresh_token, nuxt auth uses the expired access token. How do I tell Nuxt auth to use the refresh token by default?

My nuxt.config.js:

auth: {
    localStorage: false,
    redirect: {
        login: "/login/",
        logout: "/",
        home: "/search/",
    },
    watchLoggedIn: true,
    strategies: {
        local: {
            scheme: 'refresh',
            token: {
                property: 'access_token',
                global: true
            },
            refreshToken: {
                property: 'refresh_token',
                data: 'refresh_token',
                tokenRequired: true,
                maxAge: 60 * 60 * 24 * 30,
                grantType: 'refresh_token'
               
            },
            user:{
                property: false,
                // autoFetch: false
            },
            endpoints: {
                login: { url: '/login', method: 'post' },
                refresh: { url: '/token/refresh', method: 'get', grant_type:'refresh_token'},
                logout: false,
                user: { url: '/currentuser', method: 'get', propertyName: false }
            },
            tokenRequired: true,
            tokenType: 'Bearer',
        }
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文