# 烟大校园网自动登录 **Repository Path**: taylorandtony/ytu-auto ## Basic Information - **Project Name**: 烟大校园网自动登录 - **Description**: 用油猴脚本操作登录页面,脚本轮询本地服务器获取用户名和密码并点击登录按钮。前后端分离确保密码不被泄露 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-08-22 - **Last Updated**: 2023-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YTU校园网自动登录 > 为什么 YTU 每天都要登录一次? > > 为什么登录还是手动的? > > 为什么即便有了记住密码,还要点两次鼠标? ![cover](https://s1.ax1x.com/2022/09/08/vqd2b6.jpg) ## 安全问题🤔 此程序(无论是前端独立部署,还是后端 Python 部署)均**不会**网络传输、云端存储任何人的 YTU 账号、密码,也不会在本地隐藏存储任何个人信息数据。 此项目使用了多种方法实现**密码与逻辑的严格分离**。若对此存疑,可查看仓库中负责操作登录页面的脚本 `YTU校园网自动登录_配合Python.js` 源码,或查看负责本地与浏览器数据通信的 `server.py` 源码。具体工作流程请查看此文结尾 **工作流程** 部分 此项目不会在本地进行任何与用户个人信息有关的分析和计算,所有需要填写用户名和密码的位置、文件等,均只用来与前端脚本进行简单的**本地**字符串发送,不会通过任何方式发送到互联网、远程云主机、非 YTU 登录页面网站等。 下面列举了此项目内所有文件的作用: | 文件 | 作用 | | ------------------------------- | ---------------------------------- | | digits.py | 倒计时实用工具 | | server.py | 本地服务器的核心逻辑(Flask 入口) | | test.py | 命令行测试脚本 | | YTU_AutoLogin.py | 后端主入口,启动 server.py | | YTU校园网自动登录_配合Python.js | 油猴脚本,在页面填写用户名和密码 | | 生成本地密码存储文件.py | 用户部署实用工具 | ## 项目说明🚀 这是一个自动登录 YTU WiFi 的 python 程序,目前没有打包成 exe 发布,但经过配置后,可以仅依赖浏览器运行,无需本地 python 环境。 | 结构 | 使用的技术 | | ------ | ---------- | | 前端 | JavaScript | | 后端 | flask | | 运行时 | python | ## 前置需求:油猴脚本插件 **如果你的浏览器已经配置了油猴脚本插件,并且知道如何添加本地的 js 脚本,可略过此部分。直接看下文的安装部分** ![](https://s1.ax1x.com/2022/09/08/vqdmut.jpg) **油猴**或称 **Tamper monkey** 是一个浏览器扩展插件,通过它可以让浏览器实现各种各样的扩展功能。它可以强制把第三方代码片段**注入**到网页上,实现**页面自动化、劫持网页逻辑、数据修改**等高级操作。 以下是此插件的安装方法: - 安装插件:使用支持油猴脚本的浏览器(如 `Google Chrome` 谷歌浏览器,`Microsoft Edge` 微软 Edge 浏览器,`Firefox` 火狐浏览器等)并安装 Tamper Monkey 油猴脚本插件。不同的浏览器此插件名字不同,一般叫做 Tamper Monkey。 ![](https://s1.ax1x.com/2022/09/04/vTVeNd.png) - 配置插件权限:设置浏览器允许油猴脚本访问本地文件(可尝试右击插件图标,选择管理扩展,也可进入浏览器设置页面)。若不完成这一步,则此项目只能依赖 Python 后端完成密码填写。 [![](https://s1.ax1x.com/2022/09/08/vqUfL6.md.jpg)](https://imgse.com/i/vqUfL6) - 配置脚本权限:点击油猴图标,选择管理面板 ![vqa5Xq.jpg](https://s1.ax1x.com/2022/09/08/vqa5Xq.jpg) - 找到`设置`,页面往下找,找到`允许脚本访问本地文件`,设置为 `外部@require和@resource` ![](https://s1.ax1x.com/2022/09/08/vqaon0.jpg) - 添加脚本:打开浏览器,点击油猴脚本的插件图标,新建一个脚本。这是添加脚本的方法之一。 ![](https://s1.ax1x.com/2022/09/08/vqUWsx.jpg) - 复制粘贴:对于任何类型的**已下载的**脚本代码,都可以用**文本文档**打开这些代码文件(右键→打开方式→文本文档),全部复制,并在下面的页面内,删除新建脚本自带的代码模板,并把刚复制的代码粘贴进来,保存即可生效。如果是直接获取到了脚本代码片段,也可以直接复制并粘贴到这里来。 ![](https://s1.ax1x.com/2022/09/04/vTVZAH.png) **注意:**任何油猴脚本的开头几行都应当是双斜线开头的描述信息,且首行固定为 `// ==UserScript==` ;如果你获取到的脚本代码不是这个格式,则脚本无效。复制粘贴的时候,也要注意**复制所有代码**,保存可按 `Ctrl + S`。 ## 安装方法一 🌏 仅脚本运行(推荐) ### Step 1 创建文件 如果有 python 环境,直接运行 `生成本地密码存储文件.py` 并根据提示完成即可,跳至 Step 2。 若无环境,在电脑的 D 盘内,创建一个名为 `TamperMonkeyComm` 的文件夹,并在其内创建一个名为 `YTU_Password.js` 的文件。使用文本文档打开这个文件,复制并粘贴以下内容: ``` function getResponse() { return { username: 你的校园卡号, password: 你的密码, } } ``` > 如果电脑只有 c 盘,也可以选择在 c 盘新建文件,只需要把 `YTU校园网自动登录_配合Python.js` 文件开头的 `// @require file:///D:\TamperMonkeyComm\YTU_Password.js` 修改为自己的文件路径即可。 随后,精确把 **你的校园卡号** 六个字替换成自己的学号,把 **你的密码** 四个字替换成自己的密码,不要修改此文件的格式(尤其不要删除任何一个空格)。 ### Step 2 配置脚本 添加一个用户脚本,使用文本文档打开 `YTU校园网自动登录_配合Python.js` 并把全部内容覆盖到新建脚本内。保存即生效,可打开 YTU 登录页测试。 ## 安装方法二 🔍 本地 Python 运行 ### Step 1 创建配置文件 克隆本仓库,在此仓库根目录下新建 `password.yml` 文件,内容如下: ```yml username: 你的学号 password: 你的密码 ``` 建议复制以上文本并精确把 **你的学号** 四个字替换成自己的学号,把 **你的密码** 四个字替换成自己的密码,不要修改此文件的格式(如换行、空格等)。 ### Step 2 安装浏览器油猴脚本 同**方法一 step 2** 中的操作,使用文本文档打开 `YTU校园网自动登录_配合Python.js` 并把全部内容覆盖到一个新建脚本内。保存即生效。 ### Step 3 安装本地服务器 需要 Python 环境,克隆此仓库并安装依赖: - pyyaml - flask 安装:`pip install pyyaml flask` 随后执行 `YTU_AutoLogin.py` 即可自动检测是否联网,并自动登录 YTU 校园网 ### Step 4 (可选) 设置登录页面 此程序设置了默认的 YTU 登录地址,如果此地址不正确,打开 `YTU_AutoLogin.py` 并修改内部的变量 `LOGIN_URL = '新的地址'` ## 工作流程 ✈️ **若使用浏览器独立部署:** 1. 打开登录页面后,浏览器注入脚本,脚本将访问本地文件 `D:\TamperMonkeyComm\YTU_Password.js` 拿到配置的用户名和密码。 2. 脚本自动填写用户名密码,完成登录。 **若使用 python 部署:** 1. 入口文件检测是否联网,若没有联网,调用 `server.py` 启动一个本地服务器,服务器将工作于 9988 端口,用于返回包含用户名和密码的 json 数据。此服务器仅本地运行。 2. 入口文件在开启服务,并确认无法联网后,会自动使用默认浏览器打开设置的登录页面。 3. 页面打开后油猴脚本自动工作,获取本地服务器的数据并填写用户名密码。