Skip to main content

GSS UC Integration — 用户中心 SSO / 主数据同步(Fred 子系统共享包)

将各子系统里同构的 modules/uc_integration 抽成可安装包,避免复制粘贴分叉。

能力

接口 说明
GET /{subsystem}/uc_integration/auth/sso/config 登录模式
POST /{subsystem}/uc_integration/auth/sso/exchange UC 一次性 code → 本地 JWT(不接受 accessToken)
POST /{subsystem}/uc_integration/auth/sso/refresh UC refreshToken 续期
POST /{subsystem}/uc_integration/auth/sso/admin/exchange 管理端:code → admin 表 JWT
POST /{subsystem}/uc_integration/auth/sso/admin/refresh 管理端续期
POST /{subsystem}/uc_integration/internal/uc-sync UC 主数据推送(仅本机)
GET /{subsystem}/uc_integration/internal/uc-sync 同步健康检查

服务层(无 HTTP):按用户 id 查组织 + 门店

from uc_integration.service.UcStoreScopeService import (
    UcStoreScopeService,
    UcScopeQueryError,
)

try:
    scope = UcStoreScopeService().get_org_and_stores_by_user_id(user_id)
except UcScopeQueryError as e:
    # 镜像表缺失 / DB 会话不可用 / SQL 失败(含明确中文说明)
    ...
# 用户不存在(uc_user 无有效行)→ None
# scope['departments']  — 所属组织
# scope['stores'] / scope['store_ids']  — 可访问门店

纯原生 SQL 查询 uc_user / uc_dept / uc_dept_user_relation / uc_store不依赖 ORM 模型类。先校验用户存在,再查组织/门店。

本地 JWT 的 sub 含:

  • 本地身份:id / username / name / store_id(当前选中,可空)/ role
  • uc 精简code / name / store / is_store_manager,以及 departments / roles / roleCodes(payload 有则带)
  • 不含全量 store_ids / stores(避免 Authorization 过大 → 431)

换票响应 body 可另含 storeIds(当次组织现查结果,供前端首屏),不进 JWT。后续门店列表应走服务端按部门现查。

安装

# 开发:可编辑安装
pip install -e /path/to/uc-integration

# 或从 git
pip install "gss-uc-integration @ git+ssh://git@github.com/org/uc-integration.git"

Fred 只从项目 modules/ 扫描蓝图,安装后必须链接:

# 在子系统根目录(含 modules/)
python /path/to/uc-integration/scripts/link_to_project.py .
# 或覆盖已有 symlink
python /path/to/uc-integration/scripts/link_to_project.py . --force

等价手动操作:

ln -sfn "$(python -c 'import uc_integration,pathlib; print(pathlib.Path(uc_integration.__file__).parent)')" \
  modules/uc_integration

宿主配置

common/config/Config.py(或等价配置):

LOAD_CUSTOM_MODULES = [..., "uc_integration"]

SSO_LOGIN_MODE = 'uc'                    # 或 'local'
UC_SUBSYSTEM_CODE = 'ai_check'           # 路由前缀:/{code}/uc_integration
USER_CENTER_BASE_URL = 'http://127.0.0.1:5001'
USER_CENTER_INTERNAL_SECRET = '...'      # 与 UC OPEN_API_INTERNAL_SECRET 一致

# 可选
UC_INCLUDE_STORE_SCOPE = True            # 解析/返回门店 scope + 当前 store_id;不写全量 store_ids 进 JWT(默认 True)
UC_STORE_FALLBACK_FIRST = True           # 无匹配门店时回退第一个(默认 True;仅关闭 scope 时的选店回退)

宿主前置条件

  • 本地库有 uc_user / uc_store 等镜像表(可由 sync DDL 自动建)
  • ORM:model.model 中存在 UcUser(以及门店 scope 需要的 UcDept 等)
  • 依赖:fred_admin、Flask、SQLAlchemy(由子系统环境提供)

目录结构(Fred 兼容)

uc_integration/
  __init__.py              # 导出蓝图
  backend/
    __init__.py            # Blueprint + url_prefix
    deps.py                # 惰性解析 model.model
    controller/
    service/
    schema/

从旧模块迁移

  1. pip install -e ../uc-integration
  2. 备份并删除子系统 modules/uc_integration
  3. python ../uc-integration/scripts/link_to_project.py .
  4. 确认 UC_SUBSYSTEM_CODE 与门户子系统编码一致
  5. 验证 GET /{code}/uc_integration/auth/sso/config

版本

当前 0.1.9。SSO 换票下发 uc_roleroles / roleCodes / role_name);业务角色查询见 UcBusinessRoleService。无业务角色时 role_name 为空。

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uc_integration-0.1.9.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uc_integration-0.1.9-py3-none-any.whl (31.7 kB view details)

Uploaded Python 3

File details

Details for the file uc_integration-0.1.9.tar.gz.

File metadata

  • Download URL: uc_integration-0.1.9.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.1

File hashes

Hashes for uc_integration-0.1.9.tar.gz
Algorithm Hash digest
SHA256 ed55b6275edbf7acb714f979d698622801bc27a76da3c70e0f89645ebc0c0a4d
MD5 c62ed2fb12380f39ab24fc09656ba833
BLAKE2b-256 94d133514c796807a7a0aa5f8d8274a1fe02cceab666eccf3fac67ea373bb32f

See more details on using hashes here.

File details

Details for the file uc_integration-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: uc_integration-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 31.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.1

File hashes

Hashes for uc_integration-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 f35db1ce35044619378fe5dafa6d0cdd3fd684e77b40422396f7ec7e18ad7316
MD5 af5add99c6f141a7019e29dd10798c6e
BLAKE2b-256 f2963fe58145d8a80321b5610a5d18f090f9655ec0a8f2a886974098b83dbfdb

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.9 This release

2 files

0.1.8

2 files

0.1.7

2 files

0.1.5

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page