Metadata-Version: 2.4
Name: ict-auth
Version: 2.1.2
Summary: 使用 CLI 进行中科院计算所上网认证登陆
Project-URL: Homepage, https://github.com/jklincn/ict_auth
Project-URL: Repository, https://github.com/jklincn/ict_auth
Author-email: jklincn <jklincn@outlook.com>
License-Expression: MIT
Requires-Python: >=3.9
Requires-Dist: playwright==1.52.0
Requires-Dist: typer==0.15.4
Description-Content-Type: text/markdown

# ICT Auth

> ✨全新的 2.0 版本：使用 pip 即可安装**并且无需 sudo 权限**！

使用 CLI 进行中科院计算所上网认证登陆。

核心想法：

- ipv6 网络在未认证的情况下可用
- 使用浏览器的无头模式来模拟网页操作

## 安装

```
pip install ict-auth
```

这会通过 ipv6 网络下载安装包并进行安装。

> 常见问题：
>
> 1. 如果服务器上没有安装 pip，可以尝试运行以下命令来获取 pip。
>
>    - 方法一（ensurepip）：
>
>      ```
>      python -m ensurepip --upgrade
>      ```
>
>    - 方法二（get-pip.py）
>
>      ```
>      curl -O https://bootstrap.pypa.io/get-pip.py
>      python get-pip.py
>      ```
>
> 2. 如果服务器正确连接网线但没有获取到公网 ipv6 地址，可以在本地[手动下载 whl 安装包](https://pypi.org/project/ict-auth/#files)再使用 scp 拷贝至远程服务器
>
> 3. 如果安装后找不到 `ict_auth` 命令，可以尝试重新登录或根据实际添加路径到环境变量中。

## 使用

### 登陆/退出/当前状态

```
ict_auth
```

这会检测当前的登陆状态：

- 如果是未登录情况，**默认会进行登陆过程**；
- 如果已登录，则会打印当前信息，并**询问是否退出登陆**。

### 自动重连 (Beta)

据观察，所里的网络偶尔会自动断开，可以使用 `enable` 将程序注册为后台服务，持续检测上网认证状态。如果监测到网络断开，则自动进行登陆。默认检测频率为每分钟 1 次，如果程序出错（网络波动导致无法访问认证页面等情况）则十分钟后进行重试。

**注意：这会在本地明文保存账号与密码，存在账号安全隐患（待优化）**

```
ict_auth enable

# 让用户即使在没有登录的情况下，依然能够保持后台的服务运行
loginctl enable-linger $USER
```

使用 `disable` 取消持久连接（这会卸载系统服务并清空账号信息）

```
ict_auth disable
```

使用 `logs` 查看持久连接日志

```
ict_auth logs
```