0

如何使用邮递员测试我的授权 API 端点?

要求:我想以授权用户的身份访问端点,因为映射到该 http 事件的 lambda 处理程序使用 获取用户的身份event.requestContext.identity.cognitoIdentityId,当使用我的访问密钥和密钥签署请求时,这些身份不存在。

我可以成功检索获取 ID、访问和刷新令牌

import boto3

def initAuth(username, password):
    '''
    Initializes a cognito user in clientId specified
    '''
    cog_client = boto3.client('cognito-idp')
    return response = cog_client.initiate_auth(
            ClientId='4sXXXXXXXXXXXXd7',
            AuthFlow='USER_PASSWORD_AUTH',
            AuthParameters={
                'USERNAME': username,
                'PASSWORD': password
            })
#enddef


def getTokens(data):
    tokens = data['AuthenticationResult']
    return (tokens['AccessToken'], tokens['IdToken'], tokens['RefreshToken'])
#enddef


def main(username, password):
    authSuccess = initAuth(username, password)
    if authSuccess:
        (AccessToken, IdToken, RefreshToken) = getTokens(authSuccess)
        print('AccessToken:', AccessToken, '\n')`enter code here`
        print('IdToken:', IdToken, '\n')
        print('RefreshToken:', RefreshToken, '\n')
#enddef

但是,当我将返回的承载令牌附加到 Postman 中的请求时,它不起作用。它返回消息:

授权标头中不是有效的键=值对(缺少等号):'Bearer .*

这显然是因为Bearer预先添加到令牌中,而 Cognito 不喜欢这样(现在显然不是这种情况了?https: //forums.aws.amazon.com/thread.jspa?threadID=241945 )。无论哪种方式,我仍然无法弄清楚这一点。

编辑

在 Authorization 中粘贴令牌并点击Preview Request后,请求标头更新为

headers = {
    'Content-Type': "application/json",
    'Authorization': "Bearer eyJjdHkiOiJK...........",
    'cache-control': "no-cache",
    'Postman-Token': "e3d1241f-9dd6-4cca-83...."
    }

我错过了什么?这里有点疯狂。谢谢

4

0 回答 0