# Xác thực

Thư viện `huggingface_hub` cho phép người dùng quản lý xác thực với Hub một cách lập trình. Điều này bao gồm đăng nhập, đăng xuất, chuyển đổi giữa các token và liệt kê các token khả dụng.

Để biết thêm chi tiết về xác thực, hãy xem [mục này](../quick-start#authentication).

## đăng nhập[[huggingface_hub.login]]

#### huggingface_hub.login[[huggingface_hub.login]]

```python
huggingface_hub.login(token: str | None = None, add_to_git_credential: bool = False, skip_if_logged_in: bool = True)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L57)

**Tham số:**

token (`str`, *tùy chọn*) : Token truy cập của người dùng để tạo từ https://huggingface.co/settings/token.

add_to_git_credential (`bool`, mặc định là `False`) : Nếu `True`, token sẽ được đặt làm thông tin xác thực git. Nếu không có trình trợ lý thông tin xác thực git nào được cấu hình, một cảnh báo sẽ được hiển thị cho người dùng. Chỉ được sử dụng khi `token` được cung cấp; bị bỏ qua trong luồng dựa trên trình duyệt.

skip_if_logged_in (`bool`, mặc định là `True`) : Nếu `True`, sẽ không yêu cầu nhập token nếu người dùng đã đăng nhập. Đặt thành `False` để buộc đăng nhập lại. Trong CLI, hãy dùng `--force` thay thế.

**Lỗi:** ``ValueError`` hoặc `DeviceCodeError`

- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Nếu một token của tổ chức được truyền vào. Chỉ các token của tài khoản cá nhân mới hợp lệ để đăng nhập.
- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Nếu token không hợp lệ.
- `DeviceCodeError` -- Nếu đăng nhập dựa trên trình duyệt thất bại (bị từ chối ủy quyền, mã hết hạn, ...).

Đăng nhập vào máy để truy cập Hub.

`token` được lưu trong cache và được đặt làm thông tin xác thực git. Khi hoàn tất, máy đã đăng nhập và access token sẽ khả dụng trên tất cả các thành phần của `huggingface_hub`. Nếu không cung cấp `token`, quy trình OAuth dựa trên trình duyệt sẽ được sử dụng để xác thực: mở một URL, nhập một mã ngắn, và token sẽ được lấy về và lưu lại. Trong terminal, bạn cũng có thể chọn dán một access token hiện có thay thế.

Để đăng nhập từ bên ngoài một script, bạn cũng có thể sử dụng `hf auth login`, đây là một lệnh cli bao bọc [login()](/docs/huggingface_hub/v2.4.0/vi/package_reference/authentication#huggingface_hub.login).

> [!TIP]
> Khi token không được truyền vào, [login()](/docs/huggingface_hub/v2.4.0/vi/package_reference/authentication#huggingface_hub.login) sẽ tự động phát hiện xem script có đang chạy trong notebook hay không. Tuy nhiên, việc phát hiện này có thể không chính xác do sự đa dạng của các loại notebook hiện nay. Trong trường hợp đó, bạn luôn có thể ép buộc giao diện người dùng bằng cách sử dụng [notebook_login()](/docs/huggingface_hub/v2.4.0/vi/package_reference/authentication#huggingface_hub.notebook_login) hoặc [interpreter_login()](/docs/huggingface_hub/v2.4.0/vi/package_reference/authentication#huggingface_hub.interpreter_login).

## interpreter_login[[huggingface_hub.interpreter_login]]

#### huggingface_hub.interpreter_login[[huggingface_hub.interpreter_login]]

```python
huggingface_hub.interpreter_login(skip_if_logged_in: bool = True)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L284)

**Tham số:**

skip_if_logged_in (`bool`, mặc định là `True`) : Nếu `True`, sẽ không yêu cầu nhập token nếu người dùng đã đăng nhập. Đặt thành `False` để buộc đăng nhập lại. Trong CLI, hãy dùng `--force` thay thế.

Hiển thị một lời nhắc để đăng nhập vào trang web HF và lưu trữ token.

Điều này tương đương với [login()](/docs/huggingface_hub/v2.4.0/vi/package_reference/authentication#huggingface_hub.login) khi không truyền token nếu không chạy trong notebook. [interpreter_login()](/docs/huggingface_hub/v2.4.0/vi/package_reference/authentication#huggingface_hub.interpreter_login) hữu ích nếu bạn muốn ép buộc sử dụng prompt của terminal thay vì luồng notebook.

Để biết thêm chi tiết, xem [login()](/docs/huggingface_hub/v2.4.0/vi/package_reference/authentication#huggingface_hub.login).

## notebook_login[[huggingface_hub.notebook_login]]

#### huggingface_hub.notebook_login[[huggingface_hub.notebook_login]]

```python
huggingface_hub.notebook_login(skip_if_logged_in: bool = True)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L335)

**Tham số:**

skip_if_logged_in (`bool`, mặc định là `True`) : Nếu `True`, sẽ không yêu cầu nhập token nếu người dùng đã đăng nhập. Đặt thành `False` để buộc đăng nhập lại. Trong CLI, hãy dùng `--force` thay thế.

Hiển thị một lời nhắc để đăng nhập vào trang web HF và lưu trữ token.

Điều này tương đương với [login()](/docs/huggingface_hub/v2.4.0/vi/package_reference/authentication#huggingface_hub.login) khi chạy trong notebook mà không truyền token. [notebook_login()](/docs/huggingface_hub/v2.4.0/vi/package_reference/authentication#huggingface_hub.notebook_login) hữu ích nếu bạn muốn ép buộc sử dụng luồng notebook thay vì prompt trong terminal.

Để biết thêm chi tiết, xem [login()](/docs/huggingface_hub/v2.4.0/vi/package_reference/authentication#huggingface_hub.login).

## Đăng xuất[[huggingface_hub.logout]]

#### huggingface_hub.logout[[huggingface_hub.logout]]

```python
huggingface_hub.logout(token_name: str | None = None)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L120)

**Tham số:**

token_name (`str`, *tùy chọn*) : Tên của access token cần đăng xuất. Nếu là `None`, sẽ đăng xuất khỏi tất cả các access token đã lưu.

**Lỗi:** ``ValueError``

- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Nếu không tìm thấy tên access token.

Đăng xuất máy khỏi Hub.

Token đã bị xóa khỏi máy và được gỡ khỏi git credential.

## auth_switch[[huggingface_hub.auth_switch]]

#### huggingface_hub.auth_switch[[huggingface_hub.auth_switch]]

```python
huggingface_hub.auth_switch(token_name: str, add_to_git_credential: bool = False)
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L162)

**Tham số:**

token_name (`str`) : Tên của access token cần chuyển sang.

add_to_git_credential (`bool`, mặc định là `False`) : Nếu `True`, token sẽ được đặt làm thông tin xác thực git. Nếu không có trình trợ lý thông tin xác thực git nào được cấu hình, một cảnh báo sẽ được hiển thị cho người dùng. Nếu `token` là `None`, giá trị của `add_to_git_credential` sẽ bị bỏ qua và người dùng cuối sẽ được hỏi lại.

**Lỗi:** ``ValueError``

- [`ValueError`](https://docs.python.org/3/library/exceptions.html#ValueError) -- Nếu không tìm thấy tên access token.

Chuyển sang một token truy cập khác.

## auth_list[[huggingface_hub.auth_list]]

#### huggingface_hub.auth_list[[huggingface_hub.auth_list]]

```python
huggingface_hub.auth_list()
```

[Nguồn](https://github.com/huggingface/huggingface_hub/blob/v2.4.0/src/huggingface_hub/_login.py#L191)

Liệt kê tất cả các token truy cập đã lưu.

