在PHP后端API中验证Cognito标识
我在这里有点困惑,我正在使用PHP后端开发一个android应用程序。我使用其他AWS库完成大部分任务,但事务等都是我为后端保留的。我使用改型来处理PHPAPI调用和响应。我在这里很困惑,是否有任何方法可以确定使用PHP向我的web API发出请求的用户的cognito标识id?使用API网关,我将能够仅限制登录用户的访问,但确定他们的身份是接收方API对我来说相当混乱 更新: 我不希望在任何情况下使用API网关。请求超时的大部分时间都有问题。服务器为当前情况提供了更好的性能在PHP后端API中验证Cognito标识,php,android,amazon-cognito,Php,Android,Amazon Cognito,我在这里有点困惑,我正在使用PHP后端开发一个android应用程序。我使用其他AWS库完成大部分任务,但事务等都是我为后端保留的。我使用改型来处理PHPAPI调用和响应。我在这里很困惑,是否有任何方法可以确定使用PHP向我的web API发出请求的用户的cognito标识id?使用API网关,我将能够仅限制登录用户的访问,但确定他们的身份是接收方API对我来说相当混乱 更新: 我不希望在任何情况下使用API网关。请求超时的大部分时间都有问题。服务器为当前情况提供了更好的性能 任何提示或帮助都将
任何提示或帮助都将不胜感激。因为您已经有了一个用户数据库,您需要在Cognito中使用“开发者”身份 您需要在Cognito的“联合标识”部分创建一个“标识池” 从那里您可以注册一个“自定义”身份验证提供程序。。基本上,它是一个字符串,您将用户ID与之关联 然后,您将使用CogintoIdentity->getOpenIdTokenForDeveloperIdentity()方法在amazon中登录用户 您将返回一个IdentityID和一个OpenID会话令牌,您可以将其发送到STS以获取AWS API的临时凭据。。。您还可以使用此新标识创建与CognitoSync标识关联的数据集
$cognitoIdentityClient->getOpenIdTokenForDeveloperIdentity([
'IdentityPoolId'=>'Your Pool ID',
'Logins'=>[
'your.custom.provider.string'=>'YOUR USER ID'
]
]);
编辑:
在获得身份ID后。。。在我的移动应用程序中,我使用自定义HTTP头发送IdentityId和用户ID,并使用“lookupDeveloperIdentity”方法在服务器端验证用户
$cognitoIdentityClient->lookuoDeveloperIdentity([
'IdentityPoolId'=>'Your Pool ID',
'DeveloperUserIdentifier'=>'{X_HTTP_USER_ID}',
'IdentityId'=>{X_HTTP_COGNITO_IDENTITY_ID}
]
]);
我在公司的浏览器和移动应用程序中使用cognito。你已经有用户数据库了吗?或者你会使用cognito来存储你的用户数据吗?我在dynamodb中有用户数据库。我已经在android端这样做了。我已经注册了身份提供者并创建了用户身份。现在,我想确定向PHP发出post请求以获取其有效身份ID的用户。我需要向post请求传递什么才能从cognito获得他们的身份?我猜这是openID令牌,我会尝试一下并让您知道。:)我要做的是在自定义HTTP头中添加标识ID和用户ID。。。。。然后,我使用“lookupDeveloperIdentity”方法来验证发送请求的用户