Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 服务器是否保存移动请求的会话?_Android_Rest_Mobile_Login - Fatal编程技术网

Android 服务器是否保存移动请求的会话?

Android 服务器是否保存移动请求的会话?,android,rest,mobile,login,Android,Rest,Mobile,Login,我有网络开发的背景,但我对移动世界非常陌生。因此,我不确定如何处理这种情况: 应用程序中的用户登录名 凭据通过POST请求发送到服务器 如果响应正常,它将重定向到主活动 现在,我想知道我是否必须保留用户的ID。我知道,当我们使用浏览器时,服务器会保存一个“会话”,这样客户端就不必每次都发送ID来请求数据。移动应用程序(Android)也是如此吗 顺便说一下,我还负责构建REST API,但没有任何针对移动设备的经验。您误解了浏览器的情况,因此您的结论是错误的。让我解释一下:当您使用web浏览

我有网络开发的背景,但我对移动世界非常陌生。因此,我不确定如何处理这种情况:

  • 应用程序中的用户登录名
  • 凭据通过POST请求发送到服务器
  • 如果响应正常,它将重定向到主活动
现在,我想知道我是否必须保留用户的ID。我知道,当我们使用浏览器时,服务器会保存一个“会话”,这样客户端就不必每次都发送ID来请求数据。移动应用程序(Android)也是如此吗


顺便说一下,我还负责构建REST API,但没有任何针对移动设备的经验。

您误解了浏览器的情况,因此您的结论是错误的。让我解释一下:当您使用web浏览器登录到网站时,确实会保存一个会话,但不仅仅保存在服务器上。它也保存在客户端。每当您从那里向服务器发送请求时,您也必须发送存储的信息,称为cookie以识别您自己

让我们更深入地思考一下:服务器如何在不获取cookie的情况下将您的会话标识为您的会话?按IP地址?不,IP地址可以被许多人使用,而且可能会改变。按浏览器会话?是的,按浏览器会话,其中也包括cookie

既然您了解了会话是由服务器和客户端保存的,那么您肯定已经知道移动应用程序也需要同样的会话。客户端登录,因此会为客户端生成cookie。这应该很难猜测。从那时起,客户机使用为其创建的cookie来使用服务器


如果您不相信我,请访问您未登录的网站,然后运行
console.log(document.cookie)
,登录,然后再次运行
console.log(document.cookie)
,然后注销并再次运行
console.log(document.cookie)

您误解了浏览器的情况,因此您的结论是错误的。让我解释一下:当您使用web浏览器登录到网站时,确实会保存一个会话,但不仅仅保存在服务器上。它也保存在客户端。每当您从那里向服务器发送请求时,您也必须发送存储的信息,称为cookie以识别您自己

让我们更深入地思考一下:服务器如何在不获取cookie的情况下将您的会话标识为您的会话?按IP地址?不,IP地址可以被许多人使用,而且可能会改变。按浏览器会话?是的,按浏览器会话,其中也包括cookie

既然您了解了会话是由服务器和客户端保存的,那么您肯定已经知道移动应用程序也需要同样的会话。客户端登录,因此会为客户端生成cookie。这应该很难猜测。从那时起,客户机使用为其创建的cookie来使用服务器


如果您不相信我,请访问您未登录的网站,然后运行
console.log(document.cookie)
,登录,然后再次运行
console.log(document.cookie)
,然后注销并再次运行
console.log(document.cookie)

回答一个大问题,这取决于并且不确定您使用的是什么服务器技术。但是,我可以描述我实现的一种方法(.Net后台)

您似乎正在编写移动应用程序?

移动应用程序首先会通过https进行身份验证调用,将id和密码传递给您的登录api。通常url类似于

//您的网站/帐户/令牌

您的api将验证用户,如果可以,则发出一个承载令牌

移动应用程序需要记住此令牌,并在后续通话中在请求标头中传递此令牌。这就是服务器将如何知道这是谁。您不再需要发送用户id和密码。而且可能存在一个强烈的安全理由,即根本不在移动设备上存储用户id和密码

现在,您的服务器代码将验证令牌,您将知道用户可以做什么。令牌通常会过期,因此任何移动客户端都需要对此进行检查并重新验证以获得新的令牌

但是服务器如何知道这个令牌,它属于谁?

例如,在MVC世界中,这里有一些框架代码可以提供帮助。有很多MVC模板代码。如果您碰巧正在开发.NETAPI服务,请参见以下内容

如果您不是服务器上的.Net,我相信还会有其他东西帮助您遵循相同的原则


至于开发RESTful API,ServiceStack非常值得考虑。如果太贵,至少要考虑他们的方法和自己的方法(尤其是当你的API的版本化)。

要回答的大问题,这取决于你不确定你使用的是什么服务器技术。但是,我可以描述我实现的一种方法(.Net后台)

您似乎正在编写移动应用程序?

移动应用程序首先会通过https进行身份验证调用,将id和密码传递给您的登录api。通常url类似于

//您的网站/帐户/令牌

您的api将验证用户,如果可以,则发出一个承载令牌

移动应用程序需要记住此令牌,并在后续通话中在请求标头中传递此令牌。这就是服务器将如何知道这是谁。您不再需要发送用户id和密码。而且可能存在一个强烈的安全理由,即根本不在移动设备上存储用户id和密码

现在,您的服务器代码将验证令牌,您将知道用户可以做什么。令牌通常会过期,因此任何移动客户端都需要检查该令牌并重新注册