domain-admin第三方登录集成:OAuth2.0实现GitHub/Google认证

domain-admin第三方登录集成:OAuth2.0实现GitHub/Google认证

【免费下载链接】domain-admin 域名SSL证书监测平台、SSL证书申请自动续签。Domain and SSL Cert monitor System. 【免费下载链接】domain-admin 项目地址: https://gitcode.com/GitHub_Trending/doma/domain-admin

项目概述

domain-admin是一款功能强大的域名SSL证书监测平台,支持SSL证书申请自动续签。项目采用Python开发,提供了直观的Web界面和丰富的API接口,帮助用户高效管理域名和SSL证书。

官方文档:README.md
项目结构概览:domain-admin/

认证系统现状

目前domain-admin的认证系统主要基于传统的用户名密码方式,相关实现位于:

OAuth2.0集成方案

实现思路

为支持GitHub/Google第三方登录,我们需要实现OAuth2.0认证流程,主要包括以下步骤:

  1. 在GitHub/Google开发者平台创建OAuth应用
  2. 实现OAuth2.0认证接口
  3. 添加用户关联与权限控制
  4. 前端登录界面添加第三方登录选项

核心模块设计

# 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应用创建
  1. 访问GitHub开发者设置页面
  2. 点击"New OAuth App"
  3. 填写应用名称、主页URL和回调URL
  4. 记录Client ID和Client Secret
Google应用创建
  1. 访问Google Cloud控制台
  2. 创建新项目并启用"Google+ API"
  3. 在"凭据"页面创建OAuth客户端ID
  4. 配置授权回调URL
  5. 获取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

注意事项

  1. 确保回调URL与OAuth应用配置一致
  2. 生产环境中建议使用HTTPS
  3. 第三方登录用户首次登录时需要完善必要信息
  4. 注意保护Client Secret,避免泄露

总结

通过OAuth2.0协议集成GitHub和Google第三方登录,可以提升用户体验,减少注册流程障碍。本文提供的方案已经过验证,可以直接应用到实际项目中。

相关功能实现后,可以在用户管理界面查看第三方登录用户信息:domain-admin/api/user_api.py

后续可以考虑添加更多第三方登录选项,如微信、微博等,进一步提升用户体验。

【免费下载链接】domain-admin 域名SSL证书监测平台、SSL证书申请自动续签。Domain and SSL Cert monitor System. 【免费下载链接】domain-admin 项目地址: https://gitcode.com/GitHub_Trending/doma/domain-admin

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值