gpt4 book ai didi

react-native - 在 React Native Expo 应用程序中解码没有 key 的 JWT token

转载 作者:行者123 更新时间:2023-12-05 08:40:17 25 4
gpt4 key购买 nike

我的应用目前正在 expo 上运行,我需要一种方法来解码从后端收到的 JWT token 。当我使用 jwt.io 时,它不需要 key 来解码,但我似乎找不到支持 expo 的库不需要 key 来解码。我尝试使用下面的代码在没有库的情况下对其进行解码,但它不起作用:-

JSON.parse(new Buffer(token.split(‘.’)[1], ‘base64’.toString())); 

我曾尝试使用一些 expo 库,但我发现的所有内容都需要一个 key 来解码,如果我将一个空字符串传递给该 key ,它就不会解码。我也试过不用库解码

通过 jwt.io 解码我的 JWT token 后的预期结果是下面的对象:

{
"id": "5ce667c89133fd61e7f08c53",
"name": "TEST Group",
"username": "chia.wq@redtech.my",
"type": "G",
"iat": 1560152565
}

有没有其他方法可以让我在没有 key 的情况下通过使用或不使用 Expo 上的 React Native 中的库进行解码?

最佳答案

JWT key 只是在这里签署 token ,所以 yes 可以在没有 key 的情况下提取数据。

您唯一缺少的是缓冲区不是以 Base64 编码,而是以“URL Base64”编码。

在将 token 部分传递给 Buffer 之前,您必须将所有“-”替换为“+”,将所有“_”替换为“/”。

const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';

const parts = token.split('.').map(part => Buffer.from(part.replace(/-/g, '+').replace(/_/g, '/'), 'base64').toString());

const payload = JSON.parse(parts[1]);

console.log('JWT payload', payload);

关于react-native - 在 React Native Expo 应用程序中解码没有 key 的 JWT token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56546048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com