如何在RESTful请求中授权用户?

时间:2013-05-09 22:47:00

标签: web-services rest authentication jboss authorization

从有关REST服务的帖子中,我发现它应该 使用会话一起,并且每个请求都有需要将用户凭据发送到REST服务。但是我没有看到有人继续在登录后如何在下一个请求中进行授权。

在我的项目中,我对用户进行身份验证(登录),从数据库服务器检查其凭据。

如果每个REST请求也会再次出现用户凭据,这是否意味着,对于登录后的任何授权需求,我需要再次从数据库中检查凭据? 这意味着,在登录后,几乎每个点击和浏览页面,我都需要访问数据库来检查用户凭据,就像我登录一样。

或者...

我错过了什么吗?

在服务器端是否有另一种方法可以记住用户之前已登录并因此获得授权?

我是否在服务器中保留了与用户相关的密钥,然后检查等等?但是,这不意味着保持会议吗?

REST =>不是会话=>每次请求都会发送凭据

以上是否意味着 =>像验证中一样授权用户

或者还有什么其他选择?

感谢您的澄清。

2 个答案:

答案 0 :(得分:0)

我认为这是最好的方法:

  

REST =>不是会话=>每次请求发送凭据

看看OAuth。 1.0版可能对您有用。

Spring Security已经在Java中实现了OAuth。

答案 1 :(得分:0)

  

如果每个REST请求也会再次出现用户凭据,这是否意味着,对于登录后的任何授权需求,我需要再次从数据库中检查凭据?

  1. 您必须在每个请求上对用户进行身份验证,但身份验证是否使用数据库取决于实现。顺便说一下,您还必须授权对经过身份验证的用户的请求。
  2.   

    我是否在服务器中保留了与用户相关的密钥,然后检查等等?但是,这不意味着保持会议吗?

    1. 您可以将一些只有用户知道的密钥作为用户名 - 密码对的替代方法,并使用此密钥进行身份验证。

    2. 秘密密钥的存在并不意味着保持会话,因为它不一定会在每个会话的基础上发生变化。

    3.   

      在我的项目中,我对用户进行身份验证(登录),从数据库服务器检查其凭据。

      1. 登录不是身份验证,通常是使用用户名 - 密码对进行身份验证的秘密密钥/会话密钥请求