java - 通过基于 Java Spring 框架构建的 RESTful API 服务器对客户端进行身份验证

标签 java spring rest authentication

我正在寻找在访问 RESTful API 时对移动客户端用户进行身份验证的最佳方法。例如,AirBnb 大约如何使用其身份验证模块。

对于使用相同数据的 RESTful 和基本的基于 session 的资源,身份验证是否应该不同?

我不是移动开发人员,因此,我感兴趣的是从服务器端提供身份验证的最佳方式是什么,以便移动平台开发人员可以简单地使用它。

我在 google 上搜索了一些使用 OAuth、OAuth2、HTTPBasic 身份验证的方法,但仍然想知道移动开发人员如何使用此类 API,他们将如何存储此 token (cookie 由浏览器存储在面向浏览器的应用程序中)。

您能否向我推荐一些您在生产或宠物项目或其他项目中使用的链接/代码示例/技术?

最佳答案

用于身份验证的 OAuth(2) 的一个简单且易于管理的替代方案是 JWT .

您不需要额外的基础设施,工作流程和使用都很简单,并且已有适用于所有主要语言的现成库。

与 HTTP 基本身份验证相比 JWT通过传输附加信息而不仅仅是凭证来更加灵活,您可以存储 JWT token 作为 JSON 或者您可以使用 cookie,您不需要在客户端存储凭据,也不需要在每个请求上传输凭据。

同样基于JWT您可以非常轻松地实现单点登录功能。因此,如果您需要的不仅仅是一个简单的系统用户,那么您一定应该尝试 JWT .

关于java - 通过基于 Java Spring 框架构建的 RESTful API 服务器对客户端进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37571336/

相关文章:

java - 用递归方法计算数字的奇数位

java - 为什么会出现 "org.hibernate.hql.internal.ast.QuerySyntaxException: customer is not mapped [from customer]"错误

rest - 使用 https ssl 调用 rest API 时找不到 404

java - 为什么 Thread.stop() 如此危险

java - 我正在使用 spring、hibernate 和 mysql。如何让我的应用程序自动创建表格

java - 无法使用具有构建器模式的 jackson 3+ 实例化 POJO

使用 JAXB 实现 Spring Restful Web 服务的基于 Java 的配置

java - 没有出现在 Jersey 2 上使用 swagger 和 grizzly 的列表

java - 确定和取消按钮在 JFace/SWT 的 MessageDialog 中不可见

java - 导入其他 Spring Boot 应用程序而不使用它的 beans