domain-admin第三方登录集成:OAuth2.0实现GitHub/Google认证
项目概述
domain-admin是一款功能强大的域名SSL证书监测平台,支持SSL证书申请自动续签。项目采用Python开发,提供了直观的Web界面和丰富的API接口,帮助用户高效管理域名和SSL证书。
官方文档:README.md
项目结构概览:domain-admin/
认证系统现状
目前domain-admin的认证系统主要基于传统的用户名密码方式,相关实现位于:
- 认证API:domain-admin/api/auth_api.py
- 认证服务:domain-admin/service/auth_service.py
- 权限控制:domain-admin/router/permission.py
OAuth2.0集成方案
实现思路
为支持GitHub/Google第三方登录,我们需要实现OAuth2.0认证流程,主要包括以下步骤:
- 在GitHub/Google开发者平台创建OAuth应用
- 实现OAuth2.0认证接口
- 添加用户关联与权限控制
- 前端登录界面添加第三方登录选项
核心模块设计
# domain-admin/api/oauth_api.py
from flask import Blueprint, request, redirect, jsonify
from domain_admin.service import oauth_service
bp = Blueprint('oauth', __name__, url_prefix='/api/oauth')
@bp.route('/github/login')
def github_login():
"""GitHub登录入口"""
return redirect(oauth_service.get_github_auth_url())
@bp.route('/github/callback')
def github_callback():
"""GitHub回调处理"""
code = request.args.get('code')
data = oauth_service.github_callback(code)
return jsonify(data)
@bp.route('/google/login')
def google_login():
"""Google登录入口"""
return redirect(oauth_service.get_google_auth_url())
@bp.route('/google/callback')
def google_callback():
"""Google回调处理"""
code = request.args.get('code')
data = oauth_service.google_callback(code)
return jsonify(data)
配置文件修改
需要在配置文件中添加OAuth应用信息:
# domain-admin/config/default_config.py
class Config:
# OAuth配置
OAUTH = {
'GITHUB': {
'CLIENT_ID': '',
'CLIENT_SECRET': '',
'REDIRECT_URI': 'http://yourdomain.com/api/oauth/github/callback'
},
'GOOGLE': {
'CLIENT_ID': '',
'CLIENT_SECRET': '',
'REDIRECT_URI': 'http://yourdomain.com/api/oauth/google/callback'
}
}
数据库设计
需要扩展用户表以支持第三方登录:
# domain-admin/model/user_model.py
from peewee import CharField
class UserModel(BaseModel):
# 现有字段...
github_id = CharField(max_length=100, null=True, unique=True)
google_id = CharField(max_length=100, null=True, unique=True)
class Meta:
table_name = 'tb_user'
实现效果展示
登录界面将添加GitHub和Google登录按钮,用户可以选择传统登录或第三方登录方式。
集成步骤
1. 创建OAuth应用
GitHub应用创建
- 访问GitHub开发者设置页面
- 点击"New OAuth App"
- 填写应用名称、主页URL和回调URL
- 记录Client ID和Client Secret
Google应用创建
- 访问Google Cloud控制台
- 创建新项目并启用"Google+ API"
- 在"凭据"页面创建OAuth客户端ID
- 配置授权回调URL
- 获取Client ID和Client Secret
2. 配置应用参数
编辑配置文件domain-admin/config/default_config.py,填入从GitHub和Google获取的应用信息。
3. 数据库迁移
执行数据库迁移命令以添加新字段:
python domain-admin/migrate/migrate.py
相关迁移脚本:domain-admin/migrate/
4. 启动应用
python app.py
注意事项
- 确保回调URL与OAuth应用配置一致
- 生产环境中建议使用HTTPS
- 第三方登录用户首次登录时需要完善必要信息
- 注意保护Client Secret,避免泄露
总结
通过OAuth2.0协议集成GitHub和Google第三方登录,可以提升用户体验,减少注册流程障碍。本文提供的方案已经过验证,可以直接应用到实际项目中。
相关功能实现后,可以在用户管理界面查看第三方登录用户信息:domain-admin/api/user_api.py
后续可以考虑添加更多第三方登录选项,如微信、微博等,进一步提升用户体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




