Skip to content

如何实现退出登录功能

这是什么?

就像离开俱乐部时需要交还会员卡一样,用户在使用完系统后需要安全退出。这个指南将教你如何添加"安全退出"功能。

🔑 配置步骤

设置系统配置

只需要在配置文件中添加退出登录的相关设置:

yaml
wueasy:
  gateway:
    filter:
      session:
        enabled: true  # 启用会话管理
        items:
        - type: redis  # 使用redis存储用户信息
          redis-auto-expire: true   # 自动延长登录状态
          expire: PT1H   # 登录信息1小时后过期
          urls:
          - /demo/**    # 需要登录才能访问的地址
          user-login-urls: /demo/login    # 登录接口
          user-logout-urls: /demo/logout  # 退出登录接口
          user-get-info-urls: /demo/getInfo  # 获取用户信息接口
          security-visitor-urls:  # 不需要登录就能访问的接口
          - /demo/login
          - /demo/captcha
          - /demo/logout         # 退出登录不需要验证
          security-login-urls:   # 登录后才能访问的接口
          - /demo/getInfo

# Redis数据库配置
spring:
  data:
    redis:
      database: 9
      host: 127.0.0.1       # Redis服务器地址
      port: 6379            # Redis端口
      password: 123456      # Redis密码
      timeout: 3000         # 连接超时时间

🚀 如何使用

发送退出请求

shell
curl --location --request POST "http://127.0.0.1:8080/demo/logout" \
--header "authorization: demo:1:2f202192dd2744b9f5589080d765e43e"

⚠️ 注意: 记得在请求头中带上authorization(登录凭证)

退出成功返回示例

json
{
    "code": 0,           // 0表示成功
    "successful": true   // true表示成功
}

❓ 常见问题

1. 退出失败?

  • ✓ 检查登录凭证(authorization)是否正确
  • ✓ 确认是否已经处于登录状态
  • ✓ 验证退出接口地址是否正确

2. 退出后还能访问系统?

  • ✓ 确认退出请求是否成功
  • ✓ 检查前端是否正确清除了登录信息
  • ✓ 验证缓存是否正确清除

3. Redis连接问题?

  • ✓ 确认Redis服务是否正常运行
  • ✓ 检查Redis连接配置是否正确
  • ✓ 验证网络连接是否正常

💡 使用建议

  1. 安全建议:

    • 退出后立即清除本地存储的登录信息
    • 在关键操作后提醒用户及时退出
    • 定期检查未正常退出的会话
  2. 开发建议:

    • 添加退出日志记录
    • 实现自动退出功能
    • 提供重新登录的快捷方式

🆘 需要帮助?

如果遇到问题,可以:

  1. 📝 查看系统日志:./logs/gateway.log
  2. 🔍 检查Redis中的会话信息
  3. 🌐 确认网络连接正常
  4. 📋 检查配置文件格式