sa-token/sa-token-doc/doc/use/login-auth.md
2020-09-07 02:21:35 +08:00

1.7 KiB
Raw Blame History

登录验证


核心思想

  • 所谓登录验证,说白了就是限制某些接口只有登录后才能访问(如:查询我的账号资料)
  • 如何判断你有没有登录?当然是登录成功后我给你做个标记
  • 在需要鉴权的接口里检查标记,有标记者视为已登录,无标记者视为未登录
  • 根据以上思路我们很容易想到以下api

具体API

StpUtil.setLoginId(Object loginId)

  • 标记当前会话登录的账号id
  • 建议的参数类型:long | int | String 不可以传入复杂类型,如:UserAdmin等等

StpUtil.logout()

  • 当前会话注销登录

StpUtil.isLogin()

  • 获取当前会话是否已经登录返回true=已登录false=未登录

StpUtil.checkLogin()

  • 检验当前会话是否已经登录, 如果未登录,则抛出异常:NotLoginException
  • 扩展:NotLoginException 对象可通过 getLoginKey() 方法获取具体是哪个 StpLogic 抛出的异常

StpUtil.getLoginId()

  • 获取当前会话登录id, 如果未登录,则抛出异常:NotLoginException
  • 类似API还有
    • StpUtil.getLoginIdAsString() 获取当前会话登录id, 并转化为String类型
    • StpUtil.getLoginIdAsInt() 获取当前会话登录id, 并转化为int类型
    • StpUtil.getLoginIdAsLong() 获取当前会话登录id, 并转化为long类型

StpUtil.getLoginId(T defaultValue)

  • 获取当前会话登录id, 如果未登录,则返回默认值 defaultValue可以为任意类型)
  • 类似API还有
    • StpUtil.getLoginId_defaultNull() 获取当前会话登录id, 如果未登录则返回null

getLoginIdByToken(String tokenValue)

  • 获取指定token对应的登录id如果未登录则返回 null