登录端点
/login
终端节点让用户登录。它加载登录页面,并向用户显示为客户端配置的身份验证选项。
GET /login
/login
终端节点只支持 HTTPS GET
。用户池客户端通过系统浏览器发出此请求。JavaScript 的系统浏览器包括 Chrome 或 Firefox。Android 浏览器包括自定义 Chrome 选项卡。iOS 浏览器包括 Safari View 控件。
请求参数
- client_id
-
您的应用程序的应用程序客户端 ID。要获取应用程序客户端 ID,请在用户池中注册该应用程序。有关更多信息,请参阅 配置用户池应用程序客户端。
必需。
- redirect_uri
-
身份验证成功后用户重定向到的 URI。它应在指定的
response_type
的client_id
上配置。必需。
- response_type
-
OAuth 响应类型,对于代码授予流,它可能是
code
,对于隐式流,它可能是token
。必需。
- state
-
当应用程序向请求添加 state 参数时,如果
/oauth2/login
端点重新导向您的用户,则 Amazon Cognito 将此参数的值返回给您的应用程序。将此值添加到您的请求中以防止 CSRF
攻击。 不能将
state
参数的值设置为 URL 编码的 JSON 字符串。要在state
参数中传递与此格式匹配的字符串,请将该字符串编码为 Base64,然后在应用程序中对其进行解码。可选但不推荐。
- scope
-
可以是任何系统预留范围或与客户端关联的自定义范围的组合。范围必须以空格分隔。系统预留范围为
openid
、email
、phone
、profile
和aws.cognito.signin.user.admin
。必须为应用程序客户端激活您请求的任何范围,否则 Amazon Cognito 将忽略它。如果客户端不请求任何范围,则身份验证服务器使用与客户端关联的所有范围。
只有在请求
openid
范围时,才返回 ID 令牌。如果请求了aws.cognito.signin.user.admin
范围,则访问令牌只能用于 Amazon Cognito 用户池。只有在同时请求了phone
范围时,才能请求email
、profile
和openid
范围。这些范围控制进入 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
有关更多示例请求以及示例正向和负向响应,请参阅 对端点授权。