logo
0
0
WeChat Login

华东理工大学 AnyShare 网盘认证系统

基于华东理工大学 AnyShare 网盘 API 开发的用户身份认证系统,用于验证用户是否为校内用户。

功能特性

  • 校内用户身份验证
  • RSA 公钥加密密码传输
  • 命令行和 Web 两种使用方式
  • 现代化 Web 界面
  • 完整的错误处理

文件结构

ecust-auth/ ├── composer.json # Composer 依赖配置 ├── ecust_auth.php # 核心认证类 ├── verify.php # Web 认证接口 ├── index.html # Web 认证界面 ├── extract_key.py # RSA 公钥提取工具(备用) ├── public_key.pem # RSA 公钥文件 ├── swagger.json # API 文档 ├── test.php # 环境测试脚本 └── README.md # 本文件

环境要求

  • PHP 7.4+
  • PHP 扩展:
    • curl - HTTP 请求
    • openssl - RSA 加密
    • json - JSON 处理
  • Web 服务器(如 Apache、Nginx)或 PHP 内置服务器

安装步骤

1. 克隆项目

git clone https://cnb.cool/bestzyq/ecust-auth.git cd ecust-auth

2. 配置 Web 服务器

使用 PHP 内置服务器(开发测试)

php -S localhost:8000

然后访问 http://localhost:8000

使用 Apache/Nginx

将项目目录配置为 Web 根目录,确保 public_key.pem 不可被直接访问。

使用方式

命令行模式

php ecust_auth.php <学/工号> <密码> # 示例 php ecust_auth.php 2101XXXX your_password

Web 模式

  1. 打开浏览器访问 index.html
  2. 输入学号和密码
  3. 点击"验证身份"按钮

API 调用

require_once 'ecust_auth.php'; $auth = new EcustAuth('public_key.pem'); $result = $auth->verifyUser('2101XXXX', 'password'); if ($result['valid']) { echo "认证成功,确认为校内用户\n"; echo "用户ID: " . $result['data']['userid'] . "\n"; } else { echo "认证失败: " . $result['message'] . "\n"; }

API 说明

认证接口

URL: verify.php

方法: POST

参数:

  • account - 学号/工号
  • password - 密码

响应示例:

成功:

{ "valid": true, "message": "认证成功,确认为校内用户", "data": { "userid": "d22f7ec5-231f-35f5-a495-9194b66193e4", "tokenid": "f46d296a-0c66-35e4-b23c-77e2d304a7a8", "expires": 3600, "needmodifypassword": false } }

失败:

{ "valid": false, "message": "认证失败:用户名或密码错误", "data": null }

安全说明

  1. 密码加密: 使用 RSA_PKCS1_PADDING 加密,确保密码传输安全
  2. HTTPS: 生产环境必须使用 HTTPS
  3. 公钥保护: 确保 public_key.pem 文件不被公开访问
  4. 输入验证: 已对用户输入进行基本验证

常见问题

Q: 为什么认证失败?

A: 可能原因:

  1. 用户名或密码错误
  2. 公钥文件不正确或缺失
  3. 网络连接问题
  4. 服务器配置问题

Q: 支持哪些用户类型?

A: 支持华东理工大学的学号和工号。

开发说明

核心类方法

  • getConfig() - 获取服务器配置
  • login($account, $password) - 用户登录
  • verifyUser($account, $password) - 验证用户身份

扩展开发

如需集成到其他系统,可直接使用 EcustAuth 类:

$auth = new EcustAuth('/path/to/public_key.pem'); $result = $auth->verifyUser($account, $password); // 处理结果 if ($result['valid']) { // 用户是校内用户 $userid = $result['data']['userid']; $tokenid = $result['data']['tokenid']; // ... }

环境测试

运行测试脚本检查环境配置:

php test.php

许可证

本项目仅供华东理工大学内部使用。

联系方式

如有问题,请联系系统管理员。

About

华东理工大学 AnyShare 网盘认证系统

Language
PHP45.9%
HTML30.2%
Python24%