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

Spring boot REST令牌授权和身份验证最佳实践

尉迟正平
2023-03-14

在REST spring Boot中对用户进行授权和身份验证的最佳实践是什么?

我正在构建一个带有标准页面+REST API的移动应用程序。我看了很多关于Spring Security性的文章,基本上大多数都采用了某种fitler方法,允许或阻止REST调用。然而,在我的例子中,我有一些基于用户是谁的身份验证逻辑。例如,有一个/updateAPI可以更新用户信息,用户可以更新自己,但不能更新其他人。最初我想使用下一个身份验证模式:

  • 用户调用身份验证API并传递名称/密码或cookie
  • 系统生成短生命令牌,保存在数据库中。
  • 用户获得此令牌,将更新其cookie(以便web应用程序中的JS可以读取并使用它)
  • 当正在进行REST调用时,将传递make cookie。在控制器上提取令牌,检查是否过期,对数据库进行查询以验证令牌并获取用户ID。
  • 根据用户id,将允许或阻止REST。

在REST体本身中传递这个令牌有意义吗?如果是GET方法呢?

非常感谢分享你的知识。

共有1个答案

贺君浩
2023-03-14

你找到解决问题的办法了吗?

我已经在其他地方回答了这个问题,如果您确定将来不想向其他开发人员/客户机开放API(如果是的话,那么您应该查看OAuth),那么一个简单的基于令牌的解决方案就会起作用。

基本上是这样的:

    null

代码和详细信息

虽然这只是一个实验/概念的证明,但它可能对你的思考有用。

 类似资料:
  • 我有一个LaravelAPI(实际上是LumenAPI)服务于VueJS前端。Vue应用程序允许用户登录到谷歌。然后将Google令牌发送回Lumen API,后者使用Google验证令牌,然后验证电子邮件地址是否为有效用户。然后它生成一个令牌,与用户一起存储在数据库中,并返回用户对象。 我没有使用Passport或jwt auth之类的东西。那么现在,我如何使用默认的Auth中间件来验证(现在已

  • OAuth术语已经困扰我很久了。OAuth授权是像一些人建议的那样,还是认证? 如果我错了,请纠正我,但我一直认为授权是允许某人访问某个资源的行为,而OAuth似乎没有任何实际允许用户访问给定资源的实现。OAuth实现所讨论的都是为用户提供一个令牌(签名的,有时是加密的)。然后,每次调用都会将该令牌传递到后端服务endpoint,在后端服务endpoint上检查该令牌的有效性,这也不是OAuth的

  • 使用 的请求可用于身份验证吗? 或者 我们应该使用另一种方法来验证客户端并颁发令牌,然后像OAuth2一样将令牌用作不记名令牌吗?为什么流行的Web服务(例如Github、AWS、Google…)使用其他方法(如AWS所做的:)来验证客户端。问题的重点是:以下流程中是否存在任何可值或违反标准的行为。 我想使用以下流程: :类似于Twitter客户端。 :类似于Twitter API。 < li >

  • 问题内容: 我一直在努力用Spring-Security 正确实现Stomp(websocket) 身份验证 和 授权 。 为了后代,我将回答我自己的问题以提供指导。 问题 Spring WebSocket文档(用于身份验证)看起来不清楚ATM(IMHO)。而且我不明白如何正确处理 身份验证 和 授权 。 我想要的是 使用登录名/密码对用户进行身份验证。 防止匿名用户通过WebSocket连接。