如何基于不记名令牌进行身份验证?

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

新手问题,我正在开发基于 aws 的 REST API 。我想添加身份验证,其中之一是客户端传递不记名令牌。我如何在我的身份验证应用程序中读取此内容?

我已经设置了一个 api 网关和一个 lambda 后端。我如何在我的代码中读取并验证已传递的令牌(我假设在标头中)?

Authorization: Bearer <token>

我已经使用 api 网关和 lambda 在 aws 中设置了一个 api。我使用邮递员向我的服务发布请求并得到 200 响应。 lambda 基于 aws 基本设置,示例如下

def lambda_handler(event, context):
    return {
        'statusCode': 200,
        'body': 'Hello World!'
    }
python aws-lambda aws-api-gateway
1个回答
0
投票

您有三个选择:

  1. 为您的 Lambda 创建代理集成。这样,您的 Lambda 就负责处理 HTTP 会话。您的标头将在

    event.headers
    中提供,这是所有请求标头及其值的字典。

    这是最容易开始的。每当您看到 lambda 在响应中返回 HTTP 状态代码(如您的示例中)时,它们都会假定这种集成。

  2. 为您的 Lambda 创建自定义集成并设置请求映射模板。在映射模板中,您将能够提取标头并将其值放入强类型 JSON 的属性中。

    这允许您开发 lambda,其中业务逻辑与 HTTP 实现细节分离。

  3. (最干净)。实施 Lambda 授权者。这是另一个 lambda,每次收到请求时都会调用它。授权者以允许/拒绝响应,如果允许,则调用您的业务逻辑 lambda。

    这允许将处理逻辑与授权逻辑分开。

    如果您使用 AWS Cognito 用户池进行授权,您只需将其设置为端点的授权者,它将处理其余的事情。

© www.soinside.com 2019 - 2024. All rights reserved.