

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 托管登录的登录端点：`/login`
<a name="login-endpoint"></a>

登录端点是一个身份验证服务器，也是来自[对端点授权](authorization-endpoint.md)的重定向目的地。当您不指定身份提供者时，它是托管登录的入口点。当您生成到登录端点的重定向时，它加载登录页面，并向用户显示为客户端配置的身份验证选项。

**注意**  
登录端点是托管登录的一个组成部分。在您的应用程序中，调用重定向到登录端点的联合身份验证和托管登录页面。用户直接访问登录端点并不是最佳实践。

## GET /login
<a name="get-login"></a>

`/login` 端点仅支持对用户的初始请求执行 `HTTPS GET`。您的应用程序会在 Chrome 或 Firefox 等浏览器中调用该页面。当您从 [对端点授权](authorization-endpoint.md) 重定向到 `/login` 时，它会传递您在初始请求中提供的所有参数。登录端点支持授权端点的所有请求参数。您也可以直接访问登录端点。作为最佳实践，应在 `/oauth2/authorize` 上发起所有用户会话。

**示例 - 提示用户登录**

此示例显示登录屏幕。

```
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
```

## 用户发起的登录请求
<a name="post-login"></a>

在用户加载 `/login` 端点后，他们可以输入用户名和密码并选择**登录**。这样做时，将生成一个与 `GET` 请求具有相同标头请求参数的 `HTTPS POST` 请求，以及包含用户名、密码和设备指纹的请求正文。