登录端点 - Amazon Cognito
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

登录端点

/login 终端节点让用户登录。它加载登录页面,并向用户显示为客户端配置的身份验证选项。

GET /login

/login 终端节点只支持 HTTPS GET。用户池客户端通过系统浏览器发出此请求。JavaScript 的系统浏览器包括 Chrome 或 Firefox。Android 浏览器包括自定义 Chrome 选项卡。iOS 浏览器包括 Safari View 控件。

请求参数

client_id

您的应用程序的应用程序客户端 ID。要获取应用程序客户端 ID,请在用户池中注册该应用程序。有关更多信息,请参阅 配置用户池应用程序客户端

必需。

redirect_uri

身份验证成功后用户重定向到的 URI。它应在指定的 response_typeclient_id 上配置。

必需。

response_type

OAuth 响应类型,对于代码授予流,它可能是 code,对于隐式流,它可能是 token

必需。

state

当应用程序向请求添加 state 参数时,如果 /oauth2/login 端点重新导向您的用户,则 Amazon Cognito 将此参数的值返回给您的应用程序。

将此值添加到您的请求中以防止 CSRF 攻击。

不能将 state 参数的值设置为 URL 编码的 JSON 字符串。要在 state 参数中传递与此格式匹配的字符串,请将该字符串编码为 Base64,然后在应用程序中对其进行解码。

可选但不推荐。

scope

可以是任何系统预留范围或与客户端关联的自定义范围的组合。范围必须以空格分隔。系统预留范围为 openidemailphoneprofileaws.cognito.signin.user.admin。必须为应用程序客户端激活您请求的任何范围,否则 Amazon Cognito 将忽略它。

如果客户端不请求任何范围,则身份验证服务器使用与客户端关联的所有范围。

只有在请求 openid 范围时,才返回 ID 令牌。如果请求了 aws.cognito.signin.user.admin 范围,则访问令牌只能用于 Amazon Cognito 用户池。只有在同时请求了 phone 范围时,才能请求 emailprofileopenid 范围。这些范围控制进入 ID 令牌中的声明。

可选。

code_challenge_method

用于生成质询的方法。PKCE RFC 定义两个方法:S256 和 plain;但是,Amazon Cognito 身份验证服务器仅支持 S256。

可选。

code_challenge

code_verifier 生成的质询。

仅在指定 code_challenge_method 时必需。

示例请求:提示用户登录

此示例显示登录屏幕。

GET https://mydomain.auth.us-east-1.amazoncognito.com/login? response_type=code& client_id=ad398u21ijw3s9w3939& redirect_uri=https://YOUR_APP/redirect_uri& state=STATE& scope=openid+profile+aws.cognito.signin.user.admin
示例响应

身份验证服务器重定向到您的应用程序并提供授权代码和状态。服务器必须在查询字符串参数中返回代码和状态,而不是在片段中。

HTTP/1.1 302 Found Location: https://YOUR_APP/redirect_uri?code=AUTHORIZATION_CODE&state=STATE

有关更多示例请求以及示例正向和负向响应,请参阅 对端点授权