用户登录后如何区分用户,不能查看和编辑其他用户的数据?在日志记录过程中以某种方式记住用户 ID,然后进行 WHERE user_id=x 之类的查询,这是一种好方法吗?还是有其他聪明的方法?
基本上,我使用 spring 框架来记录程序,但我并不是这个框架的真正高级用户。用户登录后,他们必须将一些关于他们自己的信息插入数据库(即姓名、姓氏、电子邮件等)并填写他们的时间表。我真的不知道如何获取当前用户的 id 以让他们只编辑和插入自己的数据。
用户登录后如何区分用户,不能查看和编辑其他用户的数据?在日志记录过程中以某种方式记住用户 ID,然后进行 WHERE user_id=x 之类的查询,这是一种好方法吗?还是有其他聪明的方法?
基本上,我使用 spring 框架来记录程序,但我并不是这个框架的真正高级用户。用户登录后,他们必须将一些关于他们自己的信息插入数据库(即姓名、姓氏、电子邮件等)并填写他们的时间表。我真的不知道如何获取当前用户的 id 以让他们只编辑和插入自己的数据。
是的,您应该将他们的用户 ID 存储在会话变量中(如果您不知道哪些会话也可以查找)
您始终可以使用 SecurityContextHolder 获取当前登录的用户。SecurityContextHolder 拥有当前线程的登录用户。
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication != null && !authentication.getPrincipal().toString().equalsIgnoreCase("anonymous")) {
User loggedInUser = (User) authentication.getPrincipal();
}