uni-app uni-admin 1.8.3 版本登录问题:成功登录一次后,退出登录并删除登录账号,再次输入密码仍能登录成功
uni-app uni-admin 1.8.3 版本登录问题:成功登录一次后,退出登录并删除登录账号,再次输入密码仍能登录成功
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | 10 | HBuilderX |
操作步骤:
- 注册admin 成功
- 输入注册的账号密码,点击登录,登录成功
- 退出登录,删除账号,输入密码,点击登录。也登录成功。
排查发现是读取了缓存数据
预期结果:
删除账号后,点击登录会提示 ‘请输入账户’
实际结果:
登录成功
bug描述:
uni-admin 1.8.3 版本,成功登录一次后,退出登录, 删除登录账号,输入密码还可以登录成功
更多关于uni-app uni-admin 1.8.3 版本登录问题:成功登录一次后,退出登录并删除登录账号,再次输入密码仍能登录成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html
帐号的输入框删除了帐号,然后密码框输入密码,点登录
在 uni-app 的 uni-admin 1.8.3 版本中,如果出现“成功登录一次后,退出登录并删除登录账号,再次输入密码仍能登录成功”的问题,可能是因为以下几个原因:
1. 本地缓存未清除
在用户登录成功后,uni-admin 可能会将用户的登录信息(如 token、用户信息等)存储在本地缓存中(如 uni.setStorageSync
)。即使用户退出登录或删除账号,这些缓存信息可能仍然存在,导致再次登录时系统直接从缓存中读取了旧的登录信息。
解决方案:
- 在用户退出登录时,确保清除所有相关的本地缓存。例如:
uni.removeStorageSync('token'); uni.removeStorageSync('userInfo');
- 在登录逻辑中,确保每次登录时都从服务器获取最新的登录信息,而不是依赖本地缓存。
2. Token 未失效
如果系统使用了 token 进行身份验证,可能在用户退出登录或删除账号后,token 仍然有效。服务器可能没有及时将 token 标记为失效,导致用户仍然可以使用旧的 token 登录。
解决方案:
- 在用户退出登录或删除账号时,服务器端应将对应的 token 标记为失效(例如将 token 加入黑名单或设置过期时间)。
- 在每次登录时,服务器应校验 token 的有效性,确保只有有效的 token 才能通过验证。
3. 客户端登录状态未正确更新
在用户退出登录或删除账号后,客户端的登录状态可能未正确更新。例如,某些全局变量或状态管理工具(如 Vuex)中仍然保存了旧的登录状态。
解决方案:
- 在用户退出登录时,确保更新所有相关的全局状态。例如:
store.commit('logout'); // 如果使用了 Vuex
- 在登录逻辑中,确保每次登录时都重新初始化用户的登录状态。
4. 服务器端逻辑问题
如果服务器端的登录逻辑存在问题,可能会导致即使用户账号被删除,系统仍然允许用户登录。例如,服务器可能没有正确校验用户是否存在或是否被删除。
解决方案:
- 检查服务器端的登录逻辑,确保在用户登录时,服务器会校验用户是否存在、是否被删除、是否被禁用等状态。
- 在用户删除账号后,服务器应确保数据库中对应的用户记录被正确删除或标记为不可用。
5. 调试与日志
为了进一步排查问题,可以在登录、退出登录、删除账号等关键操作中添加日志,记录用户的操作和系统的响应。通过日志可以更清晰地了解问题的根源。
解决方案:
- 在客户端和服务器端的关键逻辑中添加日志,例如:
console.log('User logged out, clearing cache...'); console.log('User deleted, server response:', response);