java - 如何使用 REST Web 服务器维护登录状态?

标签 java android spring web-services rest

通常我可以在 session 中存储用户信息,现在我想开发一个同时具有Android客户端和浏览器客户端的应用程序。所以我想我可能需要一个 RESTful 服务器。但是我在身份验证方面遇到了一些问题。有人建议我可以使用Token机制,但是我不知道这方面的细节,也找不到很多有用的信息。

我有一些问题。

  1. 我应该将 token 存储在浏览器和 Android 客户端的什么位置?我应该使用 cookie 吗?
  2. 如何生成Token?
  3. 服务器如何验证Token?服务器应该存储 token 吗?
  4. 还有其他认证方式吗?

我使用 spring mvc 和 hibernate。如果有人可以给我一些建议,这将对我有很大帮助。

最佳答案

一般的想法是,当用户登录(调用您的 api 的登录端点)时,您会生成一个随机 token ,您将其保存在服务器中(与用户相关)并返回给调用者(android)。 所有其他调用也将需要此代码,您可以将其与您保存的代码进行比较。您还可以让代码在一段时间后超时,并根据您的需要,使用预定义的 key 对其进行编码以增加一点安全性。

关于java - 如何使用 REST Web 服务器维护登录状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28896553/

相关文章:

java - 将地理位置保存到Postgis数据库

java - Jsoup:在不同类之间选择 HTML

android - 如何增加android中 View 持有者变量的值?

java - Spring MVC : Implementing Cometd channel functionality

java - JSch 多个隧道/跳跃站

java - 观察 SharedPreferences 数据

android - afterTextChanged() 中的 setText() 以相反的顺序显示文本

java - 错误的 hibernate 列类型 : Found: undefined

java - 由 : org. hibernate.MappingException 引起:无法加载配置中声明为 <mapping class ="xxxxx"/> 的类:

java - 使用 IText 将 PDF 中的页眉从一页复制到另一页