验证PHP后端API

时间:2017-01-12 02:21:28

标签: php android amazon-cognito

我在这里有点困惑,我正在开发一个带有PHP后端的Android应用程序。我使用其他AWS库来完成大部分任务,但我保留了后端的事务等。我使用retrofit来处理PHP api调用和响应。我在这里很困惑,有什么方法可以确定用户使用PHP向我的Web API发出请求的认知身份ID吗?使用API​​网关我将只能限制登录用户的访问权限,但确定他们的身份是接收器API对我来说非常困惑。

更新: 我不希望在任何一个术语中使用API​​网关。大多数时间请求超时都是错误的。服务器为当前情况提供了更好的性能。

任何线索或帮助都将非常感激。

1 个答案:

答案 0 :(得分:1)

由于您已拥有用户数据库,因此您需要使用" developer" Cognito中的身份。

您需要创建一个"标识池"在联邦身份"联邦身份" Cognito部分。

从那里注册一个" Custom"身份验证提供程序..基本上它是一个字符串,您将用户ID与...

相关联

然后,您将使用CogintoIdentity-> getOpenIdTokenForDeveloperIdentity()方法在亚马逊中登录您的用户。

您将返回一个IdentityID和一个OpenID会话令牌,您可以将其发送到STS以获取AWS API的临时凭证...您还可以使用此新身份创建与CognitoSync身份相关联的数据集

$cognitoIdentityClient->getOpenIdTokenForDeveloperIdentity([
    'IdentityPoolId'=>'Your Pool ID',
     'Logins'=>[
          'your.custom.provider.string'=>'YOUR USER ID'
      ]
 ]);

编辑: 获取IdentityId后...在我的移动应用程序中,我使用自定义HTTP标头通过IdentityId发送,还使用用户ID并使用" lookupDeveloperIdentity"在服务器端验证用户的方法。

$cognitoIdentityClient->lookuoDeveloperIdentity([
    'IdentityPoolId'=>'Your Pool ID',
     'DeveloperUserIdentifier'=>'{X_HTTP_USER_ID}',
     'IdentityId'=>{X_HTTP_COGNITO_IDENTITY_ID}
      ]
 ]);