Spring Boot Restful API:简单认证

3

我正在使用Spring Boot编写Restful API端点。我想创建登录/注销功能。我不想使用Spring Boot默认的登录页面。

据我所知,一种简单且安全的方法是:

  1. 客户端提供用户名和密码给服务器
  2. 服务器发送一个认证代码,用户可以在随后的API端点调用中使用
  3. 认证代码有效,直到用户注销或经过一定时间

这种身份验证方法有任何常规名称吗?

我不想使用Spring Boot登录页面。Spring Boot是否有此身份验证方法的其他默认实现?如果有,它在哪里存储认证代码?它会在内存中存储吗?


“我不想使用Spring Boot的登录页面。” --你还没有解释为什么。你想要替换它的哪些部分? - chrylis -cautiouslyoptimistic-
我正在实现restful api。它没有UI界面。 - Arian
1
也许您正在寻找使用密码授权的Spring Security OAuth2? - chrylis -cautiouslyoptimistic-
1
我不打算使用任何第三方身份验证。 不需要facebook,twitter等认证。这只是服务器和客户端之间的简单登录/注销。 - Arian
2个回答

2

1
我也觉得这篇文章很有帮助: https://auth0.com/blog/securing-spring-boot-with-jwts/ - Arian

1
我之前也有同样的问题。由于你正在实现Rest API,所以默认情况下它应该是无状态的,这意味着每次请求API时都应该进行身份验证。如果你喜欢这种方式,可以尝试使用一些CAS系统来执行身份验证,这与你在问题中描述的几乎相同(这里是我的博客文章中简化的CAS)。
否则,你还可以考虑在Rest服务前面设置一个入口点或代理,在这个代理中,你可以基于客户端提供的凭据为客户端设置一个令牌,然后要求客户端在请求中发送此令牌。为令牌设置过期时间,并在此时间后使其失效。
我认为Spring Boot中没有任何现成的实现,但对于CAS和基于令牌的请求,你可以使用Spring Security的部分功能,例如TokenBasedAuthentication已经在Spring Security中实现。

它与其他答案中提到的JWT有什么不同? - Arian
1
当我发布我的答案时,他的还没有出现:) 对于基于令牌的解决方案,我认为它们完全相同。 - Simon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接