我需要创建一个SpringBoot RESTful API,供Web项目或移动应用程序使用。
我的问题是如何在没有通常的基本授权的情况下保护它,它将“jsessionid”返回给Web浏览器并保存与它的会话。对于Web项目来说这不是问题,因为它可以存储jsessionid。但是如何保护移动应用程序请求到API?
抱歉我的英文。感谢。
答案 0 :(得分:5)
您可以使用基本身份验证。它可以在每个请求上发送用户名和密码,但不需要在客户端中保存sessionid。
以下是具有基本身份验证的示例应用程序: http://www.baeldung.com/spring-security-basic-authentication
如果您未在服务器会话中保存任何内容,则无需在客户端中保存jsessionid。
答案 1 :(得分:5)
其中一个architectural constraints of REST是它必须是无国籍的。
您的REST API不得具有对客户端进行身份验证的会话。相反,客户端应该传递某种令牌,通常放在Authentication
HTTP标头中。
JWT和OAuth 2.0都是非常流行的方式,如果您愿意,您绝对可以使用OA基本身份验证和OAuth 2.0。
这是一篇名为Stateless Authenticaiton with Spring Security and JWT的文章。希望这会有所帮助!