因此,我构建了一个宁静的api。它具有/ account / {id}端点以返回用户数据。通过身份服务器对api进行保护,该身份服务器向请求者发出可以访问/ account / {id}端点的JSON Web令牌(JWT)。因此,用户使用用户名和密码发送请求,并收到JWT作为成功身份验证的回报。现在,用户将其帐户信息的请求发送到/ account / {id}。在标头中发送带有令牌的请求,并返回200响应以及有效载荷中的用户数据。
如何在端点中授权{id}?换句话说,经过身份验证的用户可以只在端点中添加任何{id}并可能接收其他用户的数据。如何防止使用JWT?
答案 0 :(得分:1)
您可以将数据存储在Web令牌中。如果存储用户的ID,则可以针对他们的每个请求识别他们。这是安全的,因为令牌的内容是使用服务器的私钥签名的。因此,它们的内容无法更改。
之后,您可以限制API,以便每个用户只能查询自己的记录,也可以实施复杂的角色系统,其中每个用户都有一组角色(例如,
,{{ 1}},public static int getFileColumnsNumber(String filename) {
File file = new File(filename);
Scanner scanner;
try {
scanner = new Scanner(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
return -1;
}
int number = 0;
if (scanner.hasNextLine()) {
number = scanner.nextLine().split(",").length;
}
scanner.close();
return number;
}
public static void main(String[] args) {
String filename = "test.txt";
System.out.println(getFileColumnsNumber(filename));
}
,read-only
,guest
等)来定义哪些端点及其使用方式。