Skip to content

Commit 29532ed

Browse files
committed
Update README.md
1 parent f6a33e0 commit 29532ed

1 file changed

Lines changed: 49 additions & 28 deletions

File tree

README.md

Lines changed: 49 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,57 @@
1-
# LinuxDo OAuth Gate - 嵌入式PHP登录认证
1+
# LinuxDo Auth Gate - 嵌入式 PHP 登录认证模块
22

3-
这是一个极简的、可嵌入的 PHP 登录认证模块,专为 [Linux.do](https://linux.do/) 社区设计。您只需在任何现有 PHP 项目的页面顶部引入一个文件,即可为其增加一套完整的、基于数据库的 OAuth 登录系统。
3+
[![LICENSE](https://img.shields.io/badge/license-MIT-green)](https://github.com/wang4386/php-oauth-Linux.Do/blob/main/LICENSE)
44

5-
## 核心特性
5+
**Auth Gate** 是一个为 PHP 项目设计的、极简且功能强大的嵌入式登录认证模块,专为 [Linux.do](https://linux.do/) 社区定制。
66

7-
- **极致简化集成**: 只需一行 `require_once` 即可为任何页面添加登录保护。
8-
- **零配置安装**: 首次访问受保护的页面时,会自动触发一个网页安装向导,无需手动编辑任何文件。
9-
- **灵活的数据库支持**: 安装时可自由选择使用 **SQLite** (零配置,推荐) 或 **MySQL**
10-
- **安全可靠**: 内置 CSRF 攻击防护、使用 `HttpOnly` 安全 Cookie,并将用户敏感信息存储在您自己的数据库中。
11-
- **无缝体验**: 登录后会自动返回用户最初访问的页面。
7+
它的核心理念是:**用最简单的方式,为任何新、旧 PHP 项目增加一套安全、可靠且带数据库支持的 OAuth 登录系统。**
128

13-
## 如何使用
9+
无论您是经验丰富的开发者还是PHP新手,都无需关心复杂的依赖和配置,只需一行代码,即可为您的项目加上登录保护。
1410

15-
1. **复制文件**: 将 `auth_gate.php`, `dlapi.php` 和整个 `auth/` 目录复制到您的 PHP 项目中。
16-
2. **引入脚本**: 在您想保护的任何 PHP 文件的最顶部,添加以下代码:
11+
---
12+
13+
## ✨ 核心特性
14+
15+
- **🚀 一行代码集成**: 只需在任何页面顶部 `require_once 'auth_gate.php';`,即可自动拦截未登录用户。
16+
- **🔮 网页安装向导**: 首次使用时会自动进入引导式安装界面,无需手动修改任何配置文件。
17+
- **💾 双数据库支持**: 安装时可自由选择使用 **SQLite** (零配置,推荐) 或 **MySQL** 存储用户信息。
18+
- **💎 “灵动岛”悬浮控件**: 登录后,可在页面左上角显示一个交互式的用户信息控件,外观精致,且可在安装时选择是否启用。
19+
- **⚙️ 独立管理后台**: 提供 `dladmin.php` 管理页面,允许您在安装后随时通过独立的账号密码登录,修改系统设置。
20+
- **🛡️ 安全可靠**: 内置 CSRF 攻击防护,使用 `HttpOnly` 安全 Cookie,管理员密码使用 `password_hash` 加密存储。
21+
22+
## 📋 系统要求
23+
24+
- PHP >= 7.4
25+
- PHP 扩展: `pdo`, `curl`, `session`
26+
- 如果您选择使用 MySQL,还需要 `pdo_mysql` 扩展。
27+
28+
## 🛠️ 安装与部署
29+
30+
1. **上传文件**: 将 `auth_gate.php`, `dlapi.php`, `logout.php`, `dladmin.php` 和整个 `auth/` 目录上传到您的 PHP 项目中。
31+
2. **引入脚本**: 在您想保护的任何 PHP 文件的**最顶部**,添加以下代码:
1732
```php
1833
require_once 'path/to/auth_gate.php';
1934
```
20-
3. **自动安装**: 在浏览器中访问您刚刚修改的那个文件。您将会看到一个安装向导界面。
21-
- **环境检查**: 确认您的服务器满足基本要求。
22-
- **选择数据库**: 选择 SQLite 或 MySQL。
23-
- **填写配置**: 按照提示填写 OAuth 应用信息 (如果您使用 MySQL,还需填写数据库凭据)。
24-
- **完成安装**: 点击按钮,程序会自动生成配置文件 (`auth_config.php`) 和数据库/表。
25-
4. **开始使用**: 安装成功后,刷新页面。您会看到“通过 Linux.Do 登录”的按钮。点击登录,完成认证流程后,您将能看到您原来的页面内容。
35+
3. **开始安装**: 在浏览器中访问您刚刚修改的那个文件。您将会看到一个安装向导界面。
36+
4. **完成配置**: 根据页面提示完成环境检查、数据库选择和各项信息的填写。
37+
5. **⚠️ 安全收尾 (重要!)**: 安装成功后,**请务必从服务器上删除 `install.php` 文件** (`auth/installer.php`),以防被他人再次执行。
38+
39+
安装完成后,刷新页面,您会看到“通过 Linux.Do 登录”的按钮。
40+
41+
## 💡 使用方法
2642

27-
此后,任何未登录的用户访问该页面时,都会被登录界面拦截。
43+
### 1. 保护一个页面
2844

29-
## 在您的代码中访问用户信息及渲染控件
45+
如上所述,只需在页面顶部引入 `auth_gate.php` 即可。该脚本会自动检查用户的登录状态,如果未登录,则会显示登录界面并终止后续代码的执行。
3046

31-
在 `require_once 'auth_gate.php';` 这一行之后,如果用户已登录,您可以随时调用 `get_current_auth_user()` 函数来获取当前用户的信息。
47+
### 2. 显示悬浮控件和用户信息
3248

33-
此外,您还需要在页面的 HTML 中调用 `render_auth_widget()` 函数来显示悬浮控件
49+
为了获得最佳体验,您需要手动调用一个函数来渲染“灵动岛”控件
3450

35-
**示例:**
51+
- `get_current_auth_user()`: 如果用户已登录,调用此函数可以获取一个包含用户信息的数组。
52+
- `render_auth_widget()`: 调用此函数来输出控件的 HTML, CSS 和 JavaScript。**推荐在 `</body>` 标签前调用。**
3653

54+
**完整示例:**
3755
```php
3856
<?php
3957
// 1. 在页面最顶部引入认证模块
@@ -69,7 +87,7 @@ require_once 'auth_gate.php';
6987
</html>
7088
```
7189

72-
## 后台管理
90+
## 🧑‍💻 后台管理
7391

7492
安装完成后,您可以访问 `https://你的域名/dladmin.php` 来进入管理后台。
7593

@@ -80,14 +98,17 @@ require_once 'auth_gate.php';
8098
- 是否启用悬浮用户控件
8199
- 重设管理员密码
82100

83-
## 文件结构
101+
## 📁 文件结构
84102

85103
- `auth_gate.php`: **(入口文件)** 您唯一需要 `require` 的文件。
86-
- `dlapi.php`: 处理来自 Linux.do 的 OAuth 回调,您无需直接访问或修改它。
104+
- `dlapi.php`: 处理来自 Linux.do 的 OAuth 回调。
105+
- `logout.php`: 处理用户登出逻辑。
106+
- `dladmin.php`: 管理员后台。
87107
- `auth/`: 存放所有模块化逻辑的目录。
88-
- `installer.php`: 网页安装向导的逻辑
108+
- `installer.php`: **(安装后需删除)** 网页安装向导
89109
- `database.php`: 数据库连接逻辑 (MySQL/SQLite)。
90110
- `functions.php`: 核心辅助函数。
91111
- `ui.php`: 渲染登录页、错误页等HTML界面。
92-
- `auth_config.php`: **(自动生成)** 存储所有配置,请勿手动修改,并建议将其加入 `.gitignore`
93-
- `auth.sqlite`: **(自动生成)** 如果您选择使用 SQLite,这是您的数据库文件。
112+
- `widget.php`: “灵动岛”悬浮控件的全部代码。
113+
- `auth_config.php`: **(自动生成)** 存储所有配置,请勿手动修改,并强烈建议将其加入 `.gitignore`
114+
- `auth.sqlite`: **(自动生成)** 如果您选择使用 SQLite,这是您的数据库文件。

0 commit comments

Comments
 (0)