TenantId如果通过用户登陆的时候获取用户表的字段值的时候,登陆功能怎么处理?

来源:6-2 多租户实现

记忆的距离

2020-03-21 19:03

老师,请问就是比如说这个TenantId是取得用户表的“company_id”字段的值,需要用户先登陆才能获取

因为有用户管理功能,所以用户表不能被过滤掉

这就会导致登陆功能根据用户名查询账户的时候也会自动加入“company_id”的条件,从而导致登陆查询用户信息失败

但是使用sql过滤的话也不合适,因为登陆进去的用户管理功能也有可能通过用户名查询筛选

这种情况请问怎么处理好?谢谢

写回答 关注

1回答

  • 老猿
    2020-03-23 20:49:50

    如果你的TenantId为null的话,不会进行过滤。你登录后,获取到company_id可以存储到session中或者其他该用户能获取到其他用户不能获取的地方。然后在多租户的getTenantId方法中取出来包装成Expression对象返回即可。这样就实现了登录查询是不过滤,其他方法过滤。


MyBatis-Plus进阶

MyBatis-Plus框架进阶课程

23312 学习 · 118 问题

查看课程

相似问题