登陆流程¶
登陆流程是用户注册好后 APP 后执行的登陆流程
关键流程¶
sequenceDiagram
participant user as Client
participant client as Frontend
participant server as Backend
alt 当前时间>JWT过期时间
client->>user: 显示用户未登陆
else 当前时间<=JWT过期时间
alt 当前时间<最后登陆时间+免登陆时间
client->>user: 显示用户已登陆
else 当前时间>=最后登陆时间+免登陆时间
client->>user: 显示未登陆
client->>user: 呼出手势/人脸/指纹登陆
end
end
Note over user, client: 账户密码登录
opt 账户密码登录
user->>client: 输入账户(手机号/邮箱)
user->>client: 输入密码
user->>client: 点击[登录]
client->>server: <登陆请求[用户名,密码]>
server->>server: 验证账户密码
alt 错误
server-->>client: <登陆请求[失败,失败原因]>
client-->>user: 提示错误
else 正确
server-->>client: <登陆请求[成功]>,<验证方式>
client->>client: 跳转至输入验证码的页面
user->>client: 输入验证码
client->>server: 提交验证码
server->>server: 验证
alt 错误
server-->>client: <验证错误[错误原因]>
client-->>user: 提示错误
else 正确
server-->>client: <验证正确,ACCESSTOKEN>
client-->>user: 提示登录成功
par 登录成功的操作
client->>client: 跳转至首页
and
client->>client: 本地存储账户信息
client->>client: 更新最后一次登陆时间
end
end
end
end