我有网络开发背景,但我对移动世界还很陌生。所以,我不确定如何处理这种情况:
- 用户登录应用
- 凭据通过 POST 请求发送到服务器。
- 如果响应正常,它会重定向到主要 Activity 。
现在,我想知道是否必须保留用户 ID。我知道当我们使用浏览器时,服务器会保存一个“ session ”,因此客户端不需要每次都发送 ID 来请求数据。移动应用程序 (Android) 也是如此吗?
顺便说一下,我还负责构建 REST API,但没有任何针对移动设备的经验。
最佳答案
要回答的问题很大,这取决于并且不确定您使用的是什么服务器技术。不过,我可以描述我实现的一种方法(.Net 背景)。
您似乎在编写移动应用程序?
移动应用程序首先会通过 https 进行身份验证调用,将 id 和密码传递给您的登录 api。通常 url 类似于
//yourwebsite/Account/Token
您的 api 将验证用户,如果确定,则发出不记名 token 。
移动应用程序需要记住此 token ,并在后续调用中将其传递到请求 header 中。这就是服务器将如何知道这是谁。您不再需要发送用户 ID 和密码。并且根本不在移动设备上存储用户 ID 和密码可能有很强的安全论据。
现在,您的服务器代码将验证 token ,您将知道用户可以做什么以及可以做什么。 token 通常会过期,因此任何移动客户端都需要对此进行检查并重新进行身份验证以获取新 token 。
但是服务器如何知道这个 token ,它属于谁?
例如,在 MVC 世界中,有框架代码可以提供帮助。有大量的 MVC 模板代码。如果您碰巧正在开发 .Net api 服务,请参阅此 http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api
如果您的服务器上没有 .Net,我相信会有其他东西可以帮助您遵循相同的原则。
至于开发 RESTful API,ServiceStack 非常值得考虑。如果太贵,至少考虑一下他们的方法并推出自己的方法(尤其是在涉及到 API 的版本控制时)。
关于android - 服务器是否保存移动请求的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34925970/