要获取经过身份验证的用户的sub,您可以在AWS Lambda函数中使用AWS Cognito SDK。
下面是一个示例代码,演示了如何在AWS Lambda函数中获取经过身份验证的用户的sub:
const AWS = require('aws-sdk');
const cognito = new AWS.CognitoIdentityServiceProvider();
exports.handler = async (event) => {
// 从事件中获取身份验证令牌
const token = event.headers.Authorization.split(' ')[1];
try {
// 使用Cognito SDK验证令牌
const decodedToken = await cognito.getUser({ AccessToken: token }).promise();
// 获取用户的sub
const sub = decodedToken.UserAttributes.find(attr => attr.Name === 'sub').Value;
return {
statusCode: 200,
body: sub
};
} catch (error) {
return {
statusCode: 401,
body: 'Unauthorized'
};
}
};
在这个示例中,我们首先从事件中提取出身份验证令牌。然后,我们使用AWS Cognito SDK的getUser
方法来验证令牌,并获取用户的属性。我们找到属性名为'sub'的属性,并返回该属性的值作为结果。
请注意,您需要在Lambda函数的执行角色中添加足够的权限,以允许Lambda函数调用Cognito SDK方法。