原理与流程
检查XH通用登录是否开启:系统首先检查是否启用了XH通用登录功能。如果未开启,则直接返回提示信息,如“XH通用登录未开启”。
检查Token参数:验证请求中是否包含了必要的Token参数。如果Token是必要参数且未填写,则返回提示信息,如“Token参数缺失”。
2. 动态时间验证(如果启用)
检查请求中的时间戳是否在允许的范围内(通常是当前时间与一个合理的时间窗口内)。如果时间戳无效,则返回提示信息,如“验证时间已过期,请重新获取”。
3. 参数验证
对用户名、邮箱、密码、电话号码、机构部门等参数进行非空和格式正确性验证。
如果用户名、邮箱、电话号码参数都不存在,则返回相应的错误提示。
4. Token生成与验证(如果适用)
根据传入的参数(如用户名、密码等)和服务器端的密钥,生成一个Token。
将生成的Token与请求中提供的Token进行比较。如果Token不匹配,则返回提示信息,如“Token验证失败”。
5. 用户登录或注册
用户存在性查询:根据用户名、邮箱、电话号码(三选一)查询用户UID是否存在。
用户存在:更新用户信息(可选,根据传入的参数决定),并进行登录操作,随后重定向到指定页面。
用户不存在且允许注册:检查请求中是否至少包含username和email两个参数。如果满足条件,则根据传入的参数进行注册操作。注册成功后,进行登录并重定向到指定页面。
6. 信息同步:
在用户登录或注册时,根据请求中的信息同步用户的username(用户名)、email(邮箱)、phone(手机号)、password(密码)以及机构部门等信息。如果请求中未提供某些信息,则不更新这些信息。
7. 组织关系同步
机构部门信息解析:如果提供了机构部门信息,系统会根据指定的格式(使用逗号(,)分隔多个机构,使用斜杠(/)分隔上下级部门)进行解析。
机构部门关联处理:
可能先删除用户现有的机构部门关联(取决于系统设计)。
在数据库中查找解析 后的机构部门。
如果机构或部门不存在,则自动创建它们。
更新用户的机构部门关联信息。
8. 日志记录
在每个关键步骤(如参数验证、用户查询、登录/注册成功/失败、组织关系同步等)记录日志。确保日志信息包含足够的细节,以便在需要时能够重现用户的行为和系统的响应。这有助于后续的审计、问题追踪和系统维护。
修改于 2025-03-14 06:03:32