北京理工大学统一身份验证登录模块
Project description
bit-login 北京理工大学统一身份认证登录库
为北理工设计的统一身份认证登录模块,只需要账号密码,即可获取各个平台鉴权,直接提供 session 供使用。支持 Python 库调用和 RESTful API 服务两种方式。
📥 安装
git clone https://github.com/yht0511/bit-login.git
cd bit-login
pip install -r requirements.txt
🚀 快速开始 (Python SDK)
基础登录
import bit_login
username = "your_username"
password = "your_password"
# 1. 登录 WebVPN
webvpn = bit_login.webvpn_login().login(username, password)
session = webvpn.get_session()
# 使用 session 访问校内资源
response = session.get("https://webvpn.bit.edu.cn/...")
# 2. 登录教务系统 (JWB)
jwb_login = bit_login.jwb_login().login(username, password)
# 获取成绩
scores = bit_login.jwb.score(jwb_login.get_session()).get_all_score()
# 3. 登录教学中心/一站式大厅 (JXZXEHALL)
hall_login = bit_login.jxzxehall_login().login(username, password)
# 获取学分信息
credits = bit_login.jxzxehall.credit(hall_login.get_session()).get_credit()
# 获取课程表
courses = bit_login.jxzxehall.courses(hall_login.get_session()).get_courses()
# 4. 其他服务支持
# - bit_login.ibit_login() # iBIT
# - bit_login.yanhekt_login() # 延河课堂
# - bit_login.library_login() # 图书馆
🌐 RESTful API 服务
本项目提供了一个基于 FastAPI 的高性能 RESTful API 服务,支持连接池复用和自动重试,适合生产环境使用。
启动服务
# 启动服务器 (默认端口 8000)
bash start.sh
# 或者手动启动
gunicorn server:app --workers 4 --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000
🐳 Docker 部署
如果你更喜欢使用 Docker,我们也提供了 Dockerfile 支持一键构建和部署。
1. 构建镜像
在项目根目录下执行以下命令:
docker build -t bit-login-server -f server/Dockerfile .
2. 启动容器
docker run -d -p 16384:16384 --name bit-login-server bit-login-server
服务启动后,可以通过 http://localhost:16384 访问服务。
3. 环境变量配置
支持通过环境变量调整服务配置:
WORKERS: Gunicorn 工作进程数 (默认: 4)PORT: 服务端口 (默认: 16384)HOST: 监听地址 (默认: 0.0.0.0)
示例:修改端口为 8080 并设置 8 个工作进程
docker run -d -p 8080:8080 \
-e PORT=8080 \
-e WORKERS=8 \
bit-login-server
接口文档
所有接口均为 POST 请求,Content-Type 为 application/json。
通用请求参数
接口都需要携带用户的账号密码用于认证。
{
"username": "your_username",
"password": "your_password"
}
1. 教务系统 - 获取成绩 (全部)
URL: /api/jwb/all_score
参数:
detailed(bool, 可选): 是否获取详细信息
示例:
curl -X POST "http://localhost:8000/api/jwb/all_score" \
-H "Content-Type: application/json" \
-d '{"username": "...", "password": "..."}'
2. 教务系统 - 获取成绩 (指定学期)
URL: /api/jwb/score
参数:
kksj(string, 可选): 开课时间(学期),如 "2023-2024-1"
3. 教学中心 - 获取个人信息
URL: /api/jxzxehall/student_data
4. 教学中心 - 获取学分信息
URL: /api/jxzxehall/credit
5. 教学中心 - 获取课程表
URL: /api/jxzxehall/courses
参数:
kksj(string, 可选): 学期代码
🛠️ 项目结构
bit_login/: 核心 SDK 代码login.py: 基础登录逻辑 (SSO)service.py: 各个服务的登录封装services/: 具体业务逻辑 (如教务查分、课程表)
server.py: FastAPI 服务端入口test.py: SDK 测试脚本
🔗 参考仓库
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bit_login-3.4.1-py3-none-any.whl.
File metadata
- Download URL: bit_login-3.4.1-py3-none-any.whl
- Upload date:
- Size: 18.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce727d83566fba2d78393d55ad1b16c7fcec596844c4d2ad108c88942175cbfd
|
|
| MD5 |
2838b6ed6a5390f323bb452f91fb85b3
|
|
| BLAKE2b-256 |
2b5bc26b8e91c2f786b2a18fc4593fad8d2f5949f419cc73d52c622444a6ef33
|