菜单

会员服务

相关源文件

概述

会员服务模块负责商城电商系统中的客户注册、认证和个人资料管理。本页面介绍了门户模块中会员服务提供的功能。有关后台用户管理的信息,请参阅用户与角色管理

会员服务为电商客户提供了 essential functions,包括:

  • 通过手机验证进行账户注册
  • 安全认证和JWT令牌管理
  • 密码管理和重置功能
  • 会员个人资料信息检索
  • 积分(积分/奖励)跟踪

系统架构

会员服务在mall-portal模块中实现,并遵循分层架构:

来源:mall-portal/src/main/java/com/macro/mall/portal/controller/UmsMemberController.java1-108 mall-portal/src/main/java/com/macro/mall/portal/service/UmsMemberService.java1-64 mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberServiceImpl.java1-196 mall-portal/src/main/java/com/macro/mall/portal/domain/MemberDetails.java1-61

关键组件

UmsMemberController

UmsMemberController 处理与会员账户管理和认证相关的HTTP请求。它使用@Controller注解并映射到/sso基础路径。

主要端点包括:

  • POST /sso/register - 会员注册
  • POST /sso/login - 会员登录和令牌颁发
  • GET /sso/info - 检索当前会员信息
  • GET /sso/getAuthCode - 生成注册/密码重置验证码
  • POST /sso/updatePassword - 更新会员密码
  • GET /sso/refreshToken - 刷新JWT认证令牌

来源:mall-portal/src/main/java/com/macro/mall/portal/controller/UmsMemberController.java26-108

UmsMemberService

UmsMemberService 接口定义了会员管理的业务操作:

来源:mall-portal/src/main/java/com/macro/mall/portal/service/UmsMemberService.java1-64

UmsMemberServiceImpl

UmsMemberServiceImpl 类实现了UmsMemberService 接口,提供了会员管理的业务逻辑。它与 Spring Security 集成进行认证,并使用 Redis 缓存授权码和会员数据。

来源:mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberServiceImpl.java39-196

MemberDetails

MemberDetails 类实现了 Spring Security 的UserDetails 接口,将UmsMember 模型适配为 Spring Security 的认证机制所用。

来源:mall-portal/src/main/java/com/macro/mall/portal/domain/MemberDetails.java15-61

身份验证流程

注册过程

下图展示了会员注册流程:

来源:mall-portal/src/main/java/com/macro/mall/portal/controller/UmsMemberController.java38-47 mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberServiceImpl.java78-107 mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberServiceImpl.java110-118

登录与认证

下图展示了登录和认证流程:

来源:mall-portal/src/main/java/com/macro/mall/portal/controller/UmsMemberController.java49-62 mall-portal/src/main/java/com/macro/mall/portal/controller/UmsMemberController.java94-107 mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberServiceImpl.java164-185

会员信息管理

当前会员检索

系统使用 Spring Security 的 SecurityContextHolder 检索当前已认证会员。

来源:mall-portal/src/main/java/com/macro/mall/portal/controller/UmsMemberController.java64-73 mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberServiceImpl.java138-144 mall-portal/src/main/java/com/macro/mall/portal/domain/MemberDetails.java58-60

密码管理

系统允许会员通过手机验证更新密码:

  1. 会员为其手机号请求认证码
  2. 系统生成并缓存一个6位随机码
  3. 会员提交手机号、新密码和收到的验证码
  4. 系统验证验证码并(如果有效)更新密码

来源:mall-portal/src/main/java/com/macro/mall/portal/controller/UmsMemberController.java83-91 mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberServiceImpl.java120-136

缓存策略

会员服务模块使用 Redis 缓存两种类型的数据:

  1. 认证码 - 用于注册和密码重置的临时代码
  2. 会员信息 - 用于减少频繁访问会员数据时的数据库查询

主要实现细节

  • 认证码以可配置的过期时间缓存。
  • 会员数据按用户名和会员ID缓存。
  • 会员数据更新时缓存失效。

安全考量

会员服务实施了多项安全措施:

  1. 密码加密 - 密码使用 Spring Security 的 PasswordEncoder 进行加密
  2. JWT 认证 - 使用具有可配置过期时间的令牌进行认证
  3. 手机验证 - 注册和密码重置需要手机验证
  4. 令牌刷新 - 在令牌过期前刷新令牌的机制

来源:mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberServiceImpl.java164-185 mall-portal/src/main/java/com/macro/mall/portal/service/impl/UmsMemberServiceImpl.java183-185

数据模型

会员服务主要与商城系统中的以下数据库实体交互:

实体描述
UmsMember存储会员账户信息,包括用户名、密码、手机号、积分等。
UmsMemberLevel定义不同会员等级及相应权益。

与其他模块的集成

会员服务与商城系统中的其他几个组件交互:

  • 安全模块 - 用于认证和授权
  • 订单模块 - 用于将订单与会员关联
  • 购物车 - 用于管理会员购物车
  • 商品收藏 - 用于管理商品收藏和品牌关注

有关商品收藏和关注功能的更多信息,请参阅商品收藏与关注