当前位置: 首页 > 知识库问答 >
问题:

从请求访问用户名的最佳方式是什么

有耀
2023-03-14

我正在用Spring Boot开发一个简单的todo应用程序。我正在使用JWT进行授权。将使用以下endpoint获取属于用户的所有TODO。

@GetMapping("")
public List<Todo> todos(){
    //get username from token
    //return todos belongs to user
}

我这里有两个问题:

  1. 从令牌获取用户名是一种很好的做法吗
  2. 使用令牌从控制器类或服务类访问用户名的最佳方式是什么

这个答案显示了如何从控制器类访问令牌。但如果我们想从服务类访问令牌,该怎么办?这个答案说明了这一点。但该类已被弃用。

共有1个答案

计和顺
2023-03-14

您可以获得如下用户名:

UserDetails userDetails = (UserDetails) SecurityContextHolder.getContext().getAuthentication()
                        .getPrincipal();
String username = userDetails.getUsername();
 类似资料:
  • 问题内容: 我正在使用python 模块将RESTful GET发送到服务器,对此我得到了JSON响应。JSON响应基本上只是列表的列表。 强制对本地Python对象进行响应的最佳方法是什么,以便我可以使用进行迭代或打印出来? 问题答案: 您可以使用: 这会将给定的字符串转换成字典,使您可以在代码中轻松访问JSON数据。 或者,您可以使用@Martijn的有用建议以及投票较高的答案。

  • 我正在使用python模块向服务器发送RESTful GET,并在JSON中得到响应。JSON响应基本上只是一个列表的列表。 将响应强制到本机Python对象的最佳方法是什么,以便使用迭代或打印它?

  • 问题内容: 我正在使用python requests模块将RESTful GET发送到服务器,对此我得到了JSON响应。JSON响应基本上只是列表的列表。 强制对本地Python对象进行响应的最佳方法是什么,以便我可以使用进行迭代或打印出来? 问题答案: 你可以使用: 这会将给定的字符串转换成字典,使你可以在代码中轻松访问JSON数据。

  • 我正在创建一个订单服务,这是RestServices世界的新功能。 我需要将订单模型读入并在DB中持久化。 为此,我有以下方法: 一切正常,但我对目前的设计有顾虑: 我正在读取输入到DTO 要存储对象,我将转换为订单对象,它将由Hibernate保存 再次发送响应回来,我正在将实际的订单对象转换为DTO。 最后,我将创建每个请求4-5个对象,如果我的应用程序得到100个请求,它可能会遇到内存问题。

  • 问题内容: 我有一个Python脚本,该脚本接受一个整数列表作为输入,我需要一次使用四个整数。不幸的是,我无法控制输入,或者将其作为四元素元组的列表传递。目前,我正在以这种方式对其进行迭代: 不过,它看起来很像“ C思维”,这使我怀疑还有一种处理这种情况的更Python的方法。列表在迭代后被丢弃,因此不需要保留。也许像这样会更好? 不过,还是不太“正确”。 问题答案: 从Python的iterto

  • 事实上中的变量比变量慢,这是众所周知的,并且已经在本网站的不同问题中讨论过了。然而,我仍然没有找到答案的一件事是,使用代码中不同函数内部使用的全局变量(如常量)的最佳和最快的方法是什么? 到目前为止,我能找到的最佳解决方案是定义一个函数,在这里我将全局变量分配给局部变量。 输出: 但这是一个丑陋的解决方案,而且比使用局部变量还要慢。在函数内部使用全局/常量变量等效的最著名的方法是什么,而不必将它们