gpt4 book ai didi

ios - AWS Lambda/Cognito 身份验证 - 担任 Auth 角色

转载 作者:搜寻专家 更新时间:2023-10-31 21:49:20 25 4
gpt4 key购买 nike

我正在尝试在 Swift 中创建一个 iOS 应用程序,它使用以下使用 AWS Lambda 的身份验证服务 - https://github.com/danilop/LambdAuth

它使用适用于 iOS 的 AWS 移动开发工具包与 DynamoDB 和 Lambda 通信 - http://docs.aws.amazon.com/mobile/sdkforios/developerguide/

这是使用从 Lambda 登录函数返回的 token 的网站示例代码,我想 Swift 代码会类似 - https://github.com/danilop/LambdAuth/blob/master/www/login.html#L69

这是为用户生成 token 的云函数 - https://github.com/danilop/LambdAuth/blob/master/LambdAuthLogin/index.js#L102

我在 AWS Cognito(联合身份)中创建了一个身份池,我有两个角色,auth 和 unauth。我的应用程序似乎始终是 unauth 角色 (arn:aws:sts::123123123:assumed-role/_unauth_MOBILEHUB_123123123/CognitoIdentityCredentials)。我的用户被存储在一个 dynamodb 表中,带有加盐密码。

问题的根源在于,在我从服务收到登录 token 以将我的用户转换为经过身份验证的角色(使用 auth arn)后,我不知道要编写正确的 Swift 代码。我希望它为每个对 AWS 的服务调用(dynamodb、lambda 等)使用 auth 角色。我希望有人能为我指明正确的方向 - 谢谢。

最佳答案

根据 Danilo 书中的设计,如果您使用的是 aws-sdk javascript,您应该像这样定义您的对象:

var creds = new AWS.CognitoIdentityCredentials({
IdentityPoolId: //hard coded value for your system//
})

AWS.config.update({
region: 'us-east-1',
credentials: creds
});

var lambda = new AWS.Lambda();

然后一旦你收到你的 identityId 和 token ,你应该将它们分配给你的信用如下:

creds.params['IdentityId'] = output.identityId;
creds.params['Logins'] = {};
creds.params['Logins']['cognito-identity.amazonaws.com'] = output.token;
creds.expired = true;

其中输出是您的 LambdAuthLogin Lambda 函数的响应。

关于ios - AWS Lambda/Cognito 身份验证 - 担任 Auth 角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38976295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com