
# 사용자 잠금 해제

`POST /v1/users/{user_id}:unlock` · 권한 `user-credentials:write`

사용자의 열려 있는 계정 잠금을 모든 로그인 경로에서 한꺼번에 해제하고, 실패 횟수를 처음부터 다시 셉니다. 해제된 잠금마다 `user.unlocked` 이벤트(`by = admin`)가 기록되며, 관리 감사 레코드(`user.unlocked`)에는 해제된 잠금의 목록이 담기고 행위자는 사용한 자격 증명입니다. 열린 잠금이 없는 사용자는 `unlocked: 0`을 받으며 아무것도 기록되지 않으므로, 이 호출은 반복해도 안전합니다. 잠금 하나만 해제하려면 [`DELETE /v1/attack-protection/lockouts/{lockout_id}`](../attack-protection/delete-lockout.md)를 사용하십시오.

## 요청

| 매개변수 | 위치 | 필수 | 설명 |
|---|---|---|---|
| `user_id` | 경로 | 예 | `usr_` 접두사가 붙은 사용자 ID입니다. |

이 작업은 요청 본문을 받지 않습니다.

## 응답

`200 OK`.

```json
{"unlocked": 2}
```

`unlocked`는 해제된 잠금의 수입니다(로그인 경로당 최대 하나).

## 오류

모든 오류는 안정적인 `code`를 담은 `application/problem+json` 본문입니다.

| HTTP | `code` | 발생 시점 |
|---|---|---|
| 404 | `not_found` | 이 환경에 해당 사용자가 없거나 ID 형식이 잘못되었습니다. |
| 401 | `unauthenticated` | API 키가 없거나, 잘못되었거나, 취소되었습니다. |
| 403 | `insufficient_permissions` | 키에 `user-credentials:write` 권한이 없습니다. |
| 429 | `rate_limited` | 요청 한도를 초과했습니다. `Retry-After` 값을 따르십시오. |
| 503 | `service_unavailable` | 종속 서비스를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오. |

## 예제

```bash
curl -X POST https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p:unlock \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI: `keenauth users unlock usr_0a1b2c3d4e5f6g7h8j9k0m1n2p`
