gru*_*dev 18 javascript jwt reactjs
我将jsonwebtoken
在我的 React 项目中创建一个表单数据的令牌。
import jwt from 'jsonwebtoken';
const MyForm = () => {
const submitForm = (e) => {
e.preventDefault();
const data = { name: 'name', email: 'email', subject: 'subject', message: 'message' };
const token = jwt.sign(data, 'qwerty');
console.log(token);
}
return(
<form onSubmit={submitForm}>
...
</form>
);
}
export default MyForm;
Run Code Online (Sandbox Code Playgroud)
发生以下错误。
TypeError: Right-hand side of 'instanceof' is not an object
push../node_modules/jsonwebtoken/sign.js.module.exports [as sign]
../node_modules/jsonwebtoken/sign.js:108
105 | return failure(new Error('secretOrPrivateKey must have a value'));
106 | }
107 |
> 108 | if (secretOrPrivateKey != null && !(secretOrPrivateKey instanceof KeyObject)) {
| ^ 109 | try {
110 | secretOrPrivateKey = createPrivateKey(secretOrPrivateKey)
111 | } catch (_) {
View compiled
submitEmail
../MyForm.js:22
19 | e.preventDefault();
20 |
21 | const data = { name: 'name', email: 'email', subject: 'subject', message: 'message' };
> 22 | const token = jwt.sign(data, 'qwerty');
| ^ 23 | console.log(token)
24 |
25 |
Run Code Online (Sandbox Code Playgroud)
为什么这会给我这个错误?我已经尝试解决这个问题但还没有结果。
并感谢任何修复它的帮助。谢谢。
小智 31
我遇到过同样的问题。问题是 9.0.0 版本的 jsonwebtoken 包不支持 Node 版本 11 及以下版本,所以我通过降级 jsonwebtoken 包的版本来解决它。
我通过将 package.json 文件内的 jsonwebtoken 依赖项从 9.0.0 更改为 8.5.1 来实现此目的,然后在终端内运行npm update 。
这里可能建议升级你的节点版本,但由于 npm 问题,我还没有完全更新我的节点版本,所以这只是一个解决方法。
查看以下文章,解释 jsonwebtoken 包从 v8 迁移到 v9。 https://github.com/auth0/node-jsonwebtoken/wiki/Migration-Notes:-v8-to-v9
归档时间: |
|
查看次数: |
21197 次 |
最近记录: |