我试图在Swift中创建一个使用AWS Lambda的以下身份验证服务的iOS应用程序 - https://github.com/danilop/LambdAuth
它使用适用于iOS的AWS Mobile SDK与DynamoDB和Lambda进行通信 - http://docs.aws.amazon.com/mobile/sdkforios/developerguide/
以下是使用Lambda登录函数返回的令牌的网站示例代码,我想Swift代码将类似 - https://github.com/danilop/LambdAuth/blob/master/www/login.html#L69
以下是为用户生成令牌的 Cloud 功能 - https://github.com/danilop/LambdAuth/blob/master/LambdAuthLogin/index.js#L102
我在AWS Cognito(联合身份)中创建了一个身份池,我有两个角色,auth和unauth . 我的应用程序似乎始终是unauth角色(arn:aws:sts :: 123123123:assume-role / _unauth_MOBILEHUB_123123123 / CognitoIdentityCredentials) . 我的用户被存储在一个带有盐渍密码的dynamodb表中 .
问题的根源是,在我从服务接收登录令牌以将用户转换为经过身份验证的角色(使用auth arn)后,我不知道要写入的正确Swift代码 . 我希望它为AWS的每个服务调用(dynamodb,lambda等)使用auth角色 . 我希望有人能指出我正确的方向 - 谢谢 .
2 回答
根据Danilo的书中的设计,如果你使用aws-sdk javascript,你应该定义你的对象,如:
然后,一旦您收到identityId和令牌,您应该将它们分配给您的信用如下:
其中output是LambdAuthLogin Lambda函数的响应 .
只有当您使用受支持的公共提供商(Facebook,Google,Twitter,Login With Amazon),OIDC提供商,SAML提供商或Cognito用户池用户时,才会使用经过身份验证的角色 .
Amazon Cognito User Pools为您提供用户注册,身份验证和管理的解决方案 . 您是否有理由更喜欢使用Lambda Auth?