如何从 AWS Lambda 中的回调返回 JWT 令牌[重复]

问题描述 投票:0回答:0

我正在使用带有 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),
                };
            }
        }
    );
};

在此先感谢您的帮助

node.js amazon-web-services aws-lambda aws-api-gateway
© www.soinside.com 2019 - 2024. All rights reserved.