uni-app uni-admin 1.8.3 版本登录问题:成功登录一次后,退出登录并删除登录账号,再次输入密码仍能登录成功

uni-app uni-admin 1.8.3 版本登录问题:成功登录一次后,退出登录并删除登录账号,再次输入密码仍能登录成功

开发环境 版本号 项目创建方式
Windows 10 HBuilderX

操作步骤:

  1. 注册admin 成功
  2. 输入注册的账号密码,点击登录,登录成功
  3. 退出登录,删除账号,输入密码,点击登录。也登录成功。
    排查发现是读取了缓存数据

预期结果:

删除账号后,点击登录会提示 ‘请输入账户’

实际结果:

登录成功

bug描述:

uni-admin 1.8.3 版本,成功登录一次后,退出登录, 删除登录账号,输入密码还可以登录成功

Desktop.zip


更多关于uni-app uni-admin 1.8.3 版本登录问题:成功登录一次后,退出登录并删除登录账号,再次输入密码仍能登录成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html

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);
回到顶部