Skip to main content

XMULogin

厦门大学统一身份认证登录 SDK

简介

XMULogin 是一个用于厦门大学统一身份认证系统的 Python SDK,提供简单易用的接口来登录以下系统:

  1. 统一身份认证系统
  2. 教务系统
  3. 数字化教学平台 (TronClass)

安装

从 PyPI 安装

pip install xmulogin

从源码安装

git clone https://github.com/yourusername/xmulogin.git
cd xmulogin
pip install -e .

使用方法

基本用法

from xmulogin import xmulogin

# 登录统一身份认证系统 (type=1)
session = xmulogin(type=1, username="your_username", password="your_password")

if session:
    print("登录成功")
    # 使用 session 进行后续操作
    response = session.get("https://ids.xmu.edu.cn/authserver/index.do")
    print(response.status_code)
else:
    print("登录失败")

登录不同系统

from xmulogin import xmulogin

# 1. 登录统一身份认证系统
session1 = xmulogin(type=1, username="your_username", password="your_password")

# 2. 登录教务系统
session2 = xmulogin(type=2, username="your_username", password="your_password")

# 3. 登录数字化教学平台
session3 = xmulogin(type=3, username="your_username", password="your_password")

完整示例

from xmulogin import xmulogin

def main():
    username = "your_username"
    password = "your_password"
    
    # 选择登录类型
    login_type = 1  # 1: 统一身份认证, 2: 教务系统, 3: 数字化教学平台
    
    print(f"正在登录...")
    session = xmulogin(type=login_type, username=username, password=password)
    
    if session:
        print("✓ 登录成功")
        
        # 使用 session 进行后续请求
        if login_type == 1:
            response = session.get("https://ids.xmu.edu.cn/authserver/index.do")
            print(f"统一身份认证系统状态: {response.status_code}")
            
        elif login_type == 2:
            response = session.get("https://jw.xmu.edu.cn/new/index.html")
            print(f"教务系统状态: {response.status_code}")
            
        elif login_type == 3:
            response = session.get("https://lnt.xmu.edu.cn/api/user/info")
            print(f"数字化教学平台状态: {response.status_code}")
    else:
        print("✗ 登录失败")

if __name__ == "__main__":
    main()

API 参考

xmulogin(type, username, password)

厦门大学统一登录接口

参数:

  • type (int): 登录类型
    • 1 - 统一身份认证系统
    • 2 - 教务系统
    • 3 - 数字化教学平台 (TronClass)
  • username (str): 学号或工号
  • password (str): 密码

返回值:

  • 成功: 返回已登录的 requests.Session 对象
  • 失败: 返回 None

异常:

  • ValueError: 当 type 参数不在有效范围 (1-3) 内时抛出

依赖

  • Python >= 3.7
  • requests >= 2.25.0
  • pycryptodome >= 3.10.0

注意事项

  1. 请妥善保管您的账号密码,不要在代码中硬编码或提交到版本控制系统
  2. 建议使用环境变量或配置文件来存储敏感信息
  3. 本 SDK 仅供学习交流使用,请遵守学校相关规定
  4. 登录频率过高可能会被系统限制,请合理使用

安全建议

import os
from xmulogin import xmulogin

# 推荐:从环境变量读取敏感信息
username = os.getenv('XMU_USERNAME')
password = os.getenv('XMU_PASSWORD')

session = xmulogin(type=1, username=username, password=password)

发布到 PyPI

构建发行版

# 安装构建工具
pip install build twine

# 构建发行版
python -m build

上传到 PyPI

# 上传到 TestPyPI (测试)
python -m twine upload --repository testpypi dist/*

# 上传到 PyPI (正式)
python -m twine upload dist/*

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request!

更新日志

v1.0.0 (2025-11-21)

  • 初始版本发布
  • 支持统一身份认证系统登录
  • 支持教务系统登录
  • 支持数字化教学平台登录

联系方式

如有问题或建议,请联系:your.email@example.com

Release files for xmulogin 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xmulogin 1.0.0
File Size Uploaded
xmulogin-1.0.0.tar.gz 8.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xmulogin 1.0.0
File Interpreter ABI Platform
xmulogin-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.5 kB

Release files / xmulogin-1.0.0.tar.gz

Download URL xmulogin-1.0.0.tar.gz
Size 8.5 kB
Tags Source
SHA-256 checksum
How to use checksums
46075bc95e55cebea47c5e6eeb9220908a2d19a24008ca71113be47a0ce93e50
BLAKE2b-256 checksum
How to use checksums
41a77060fc8102698496340e7f4fd7772cc1610bae541ce125caf6acc00ca8ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / xmulogin-1.0.0-py3-none-any.whl

Download URL xmulogin-1.0.0-py3-none-any.whl
Size 7.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
474bdea91258c795c1a9da519d081b09f03bb596f4557053e93ab646cb115e07
BLAKE2b-256 checksum
How to use checksums
9dacc25d978166ee1a9bb0fbd8a5e0dfb9fa01e93324219ee104d188f91ea812
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release history Release notifications | RSS feed

1.0.1

2 release files

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page