Skip to content

feat: 支持钉钉OAuth#28

Merged
yokowu merged 1 commit intochaitin:mainfrom
yokowu:main
Jul 1, 2025
Merged

feat: 支持钉钉OAuth#28
yokowu merged 1 commit intochaitin:mainfrom
yokowu:main

Conversation

@yokowu
Copy link
Copy Markdown
Collaborator

@yokowu yokowu commented Jul 1, 2025

No description provided.

@yokowu yokowu merged commit 8087536 into chaitin:main Jul 1, 2025
2 checks passed
@safe1ine
Copy link
Copy Markdown
Collaborator

@MonkeyCode-AI review

@MonkeyCode-AI
Copy link
Copy Markdown
Contributor

⏳ MonkeyCode-AI 正在分析,请稍等片刻...

Copy link
Copy Markdown
Contributor

@MonkeyCode-AI MonkeyCode-AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request 概述

  • 本次PR主要引入了对OAuth登录和用户身份管理的支持,增强了系统的身份验证机制。通过添加新的数据库表和修改现有表结构,支持第三方用户身份存储。同时,实现了后端OAuth相关的端点和处理逻辑,特别是钉钉OAuth提供商的实现。API方面增加了OAuth的注册和回调端点,并更新了相关的文档。整体变更提升了系统的扩展性和用户认证的灵活性,同时保持了与传统邮箱/密码认证方式的兼容性。

Pull Request 变更详情

文件路径 变更类型 变更内容
backend/db/useridentity_*.go 添加 新增用户身份相关的数据库操作
backend/db/user_*.go 修改 更新用户表结构和相关操作以支持身份管理
backend/db/setting_*.go 修改 添加钉钉OAuth配置字段
backend/domain/oauth.go 添加 实现OAuth领域模型
backend/internal/api/user/oauth.go 添加 添加OAuth相关的API端点
backend/internal/handler/user/oauth.go 添加 实现OAuth处理逻辑
backend/internal/service/user/oauth.go 添加 实现OAuth服务逻辑
backend/internal/provider/dingtalk.go 添加 实现钉钉OAuth提供商
backend/migration/migrations.go 修改 更新数据库迁移脚本
backend/ent/schema/user.go 修改 更新用户实体定义
backend/ent/schema/useridentity.go 添加 添加用户身份实体定义
backend/config/config.go 修改 添加OAuth配置
backend/consts/oauth.go 添加 添加OAuth常量定义

Copy link
Copy Markdown
Contributor

@MonkeyCode-AI MonkeyCode-AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request 概述

  • 本次PR主要实现了钉钉OAuth登录功能,允许用户通过钉钉账号注册或登录系统。
  • 在数据库层面,增加了user_identities表用于存储用户的第三方身份信息,同时修改了users表,使username、password、email字段可为空,并添加了avatar_url和platform字段。
  • 在后端逻辑方面,更新了用户用例以支持OAuth注册/登录流程,新增了OAuth相关的HTTP处理函数和回调函数。
  • 此外,还更新了Swagger文档以反映新增的OAuth接口。

Pull Request 变更详情

文件路径 变更类型 变更内容
backend/consts/user.go 修改 添加了UserPlatform和OAuthKind常量定义
backend/db/client.go 修改 添加了UserIdentity客户端支持
backend/db/ent.go 修改 添加了useridentity表的校验支持
backend/db/hook/hook.go 修改 添加了UserIdentityFunc钩子函数
backend/db/intercept/intercept.go 修改 添加了UserIdentityFunc拦截器函数
backend/db/migrate/schema.go 修改 更新了数据库模式,包括users和settings表的字段变更及新增user_identities表
backend/db/mutation.go 修改 添加了UserIdentityMutation结构和相关方法
backend/db/page.go 修改 为UserIdentityQuery添加了分页方法
backend/db/predicate/predicate.go 修改 添加了UserIdentity谓词函数
backend/db/runtime/runtime.go 修改 更新了user和useridentity表的默认值设置
backend/db/setting.go 修改 添加了钉钉OAuth相关字段
backend/db/setting/setting.go 修改 添加了钉钉OAuth相关字段和排序方法
backend/db/setting/where.go 修改 添加了钉钉OAuth相关字段的查询条件
backend/db/setting_create.go 修改 添加了钉钉OAuth相关字段的创建方法
backend/db/setting_update.go 修改 添加了钉钉OAuth相关字段的更新方法
backend/db/tx.go 修改 添加了事务中UserIdentity客户端的支持
backend/db/user.go 修改 更新了User结构体和相关方法,支持avatar_url和platform字段
backend/db/user/user.go 修改 更新了User表的字段定义和查询方法
backend/db/user/where.go 修改 添加了User表新字段的查询条件
backend/db/user_create.go 修改 添加了User表新字段的创建方法和与UserIdentity的关系处理
backend/db/user_query.go 修改 添加了User表与UserIdentity的关联查询方法
backend/db/user_update.go 修改 添加了User表新字段的更新方法和与UserIdentity的关系处理
backend/db/useridentity.go 新增 新增了UserIdentity结构体和相关方法
backend/db/useridentity/useridentity.go 新增 新增了UserIdentity表的字段定义和排序方法
backend/db/useridentity/where.go 新增 新增了UserIdentity表的查询条件
backend/db/useridentity_create.go 新增 新增了UserIdentity表的创建方法
backend/db/useridentity_delete.go 新增 新增了UserIdentity表的删除方法
backend/db/useridentity_query.go 新增 新增了UserIdentity表的查询方法
backend/db/useridentity_update.go 新增 新增了UserIdentity表的更新方法
backend/docs/swagger.json 修改 更新了Swagger文档,添加了OAuth相关接口定义
backend/domain/oauth.go 新增 新增了OAuth相关结构体和接口定义
backend/domain/user.go 修改 更新了UserUsecase和UserRepo接口,添加了OAuth相关方法
backend/ent/schema/setting.go 修改 更新了Setting表结构,添加了钉钉OAuth相关字段
backend/ent/schema/user.go 修改 更新了User表结构,使部分字段可为空并添加了platform和avatar_url字段
backend/ent/schema/useridentity.go 新增 新增了UserIdentity表结构定义
backend/errcode/errcode.go 修改 添加了OAuth状态无效的错误码
backend/errcode/locale.zh.toml 修改 添加了OAuth状态无效的中文错误信息
backend/internal/user/handler/v1/user.go 修改 添加了OAuth相关HTTP处理函数
backend/internal/user/repo/user.go 修改 添加了SignUpOrIn方法用于处理OAuth用户注册/登录
backend/internal/user/usecase/user.go 修改 更新了用户用例,添加了OAuth注册/登录和回调处理逻辑
backend/migration/000002_create_core_table.up.sql 修改 更新了数据库迁移脚本,修改了users表结构并新增了user_identities表
backend/pkg/oauth/dingtalk.go 新增 新增了钉钉OAuth实现
backend/pkg/oauth/oauth.go 新增 新增了OAuth工厂函数

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants