我正在使用带有 API 网关的 Lambda 来尝试返回一个 jwt 令牌。 CloudWatch 日志显示在发出请求时将令牌打印到控制台,但实际请求返回
{"message": "Internal server error"}
.
这是我的功能代码:
/**
* @type {import('@types/aws-lambda').APIGatewayProxyHandler}
*/
import jwt from 'jsonwebtoken';
import uuid4 from 'uuid4';
export const handler = async event => {
console.log(`EVENT: ${JSON.stringify(event)}`);
const app_access_key = process.env.HMS_ACCESS_KEY;
const app_secret = process.env.HMS_SECRET_KEY;
const payload = {
access_key: app_access_key,
room_id: event.queryStringParameters.room_id,
user_id: event.queryStringParameters.user_id,
role: event.queryStringParameters.role,
type: 'app',
version: 2,
iat: Math.floor(Date.now() / 1000),
nbf: Math.floor(Date.now() / 1000)
};
jwt.sign(
payload,
app_secret,
{
algorithm: 'HS256',
expiresIn: '24h',
jwtid: uuid4()
},
(err, token) => {
if (err) {
console.log('Error: ', err);
return {
statusCode: 500,
body: JSON.stringify(err),
};
} else {
console.log('Token: ', token);
return {
statusCode: 200,
body: JSON.stringify(token),
};
}
}
);
};
在此先感谢您的帮助