node.js - 无法使用节点验证 Cognito 令牌
问题描述
无法从 Cognito 验证 JWT Web-Token。
这是我尝试做的步骤:
- 从 Cognito-Userpool 登录端点获取令牌: https ://mydomain.auth.us-east-1.amazoncognito.com/login?response_type=token&client_id=client_id&redirect_uri=http://localhost:3000
然后从结果中获取 id_token 部分
var jwt = require('jsonwebtoken');
var jwkToPem = require('jwk-to-pem');
var token = <token_from_login_endpoint>;
var jwk = <key_object_which_matches_kid_from_token>;
var pem = jwkToPem(jwk);
var result = jwt.verify(token, pem, { algorithms: ['RS256'] },
function(err, decodedToken) {
console.log(err);
console.log(decodedToken);
});
console.log(result);
这会导致错误:名称:'JsonWebTokenError',消息:'jwt malformed'
根据 JWT.io 的说法,Token 看起来不错,并且有 Header、Payload 和 Public Key。
解决方案
推荐阅读
- c++ - 即使函数已经存在,C++ 未定义的函数引用错误
- java - admob SettingEnabled false
- typo3-9.x - 错字3 Bootstrap 包子导航左侧
- python - 如何将变量“s”传递给 is_fl_vowel() 方法?
- python - 使用 Django 和单个网页模板将网页内容存储在数据库中的最佳方式
- sql-server - 排除历史记录表中的列
- swiftui - 如何使用 SwiftUI 禁用/修改按钮?
- c# - 如何在 ASP.NET Core 中将没有文件名的多部分/表单数据文件绑定到 IFormFile
- c# - Asp.net Core Razor 页面从 _layout 发布
- reactjs - NPX create-react-app 找不到 @typescript-eslint/experimental-utils@2.19.1 的匹配版本