python - 通过移动客户端在 Google App Engine 中使用 session

标签 python ios google-app-engine session

我希望使用 gae-sessions o 实现对 Google App Engine 的 session 支持r webapp2 sessions ,这更有意义。但是,我真的不明白它是如何工作的。在示例代码中,他们做的最多的工作是:

 session = get_current_session()

我认为 session 的全部意义在于对用户进行身份验证。这是我的情况:

用户只有在登录后才能使用 iOS 应用程序。在用户第一次登录后,而不是每次都发送用户密码进行身份验证,我读到这就是 session ID 的用途.那么现在,我该如何使用这些框架来做到这一点呢?

  • 难道不应该有一些 ID 吗?
  • 成功登录后,我向客户发回什么?
  • get_current_session 如何知道用户是谁?
  • 客户端在每次请求时向服务器发送什么?
  • 如果用户从多个设备登录怎么办?

请记住,客户端不是浏览器,而是移动应用程序。我只是不明白这一切在这种情况下是如何运作的。

最佳答案

I thought the whole point of sessions was to authenticate users.

不, session 用于识别属于同一浏览器的请求。它不识别或验证用户。这是您的代码的工作。 session 通常通过 Cookies 工作:在第一次请求时服务器发送一个 cookie,然后在所有后续请求中浏览器将 cookie 添加到请求中。服务器就是这样知道一系列请求属于同一个客户端(浏览器)的。 为了使这适用于您的情况,您的 Android code should use cookies .

Isn't there supposed to be some id?

是的,登录后您通常会得到一些用户 ID,但这是特定于登录过程的。这也与 session 无关。 session 基本上是服务器端的一个对象,当请求来自同一个客户端时它总是相同的。您可以将一些属性存储到 session 对象中:通常在用户执行登录后,您会将他们的用户 ID 存储到 session 中,以便更容易识别来自同一用户的请求。当用户注销时,您将从 session 中删除用户 ID。

What do I send back to the client after a successful login?

在服务器上启用 session (= pick your library ) 和 enable cookies in Android code .然后 session 将在您的客户端和服务器之间自动处理。成功登录后,只需将用户 ID 存储到 session 中。在后续请求中,只需检查 session 是否包含用户 UD。

How does get_current_session know who the user is?

事实并非如此。登录后,您将一些与用户相关的数据存储到 session 中,您可以在后续请求中检查这些数据。

What does the client send to the server with every request?

要使 session 正常工作,它应该发送一个 cookie。如果您在 Android HttpClient 代码(上面的链接)中启用 cookie 支持,则会自动完成此操作。

What if the user is signed in from multiple devices?

多个客户端将导致多个独立 session 。由您的服务器代码来识别属于同一用户的 session (=多个 session 将存储相同的用户 ID)。

关于python - 通过移动客户端在 Google App Engine 中使用 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12207507/

相关文章:

python - 我如何使用 matplotlib 使用非数值为绘图着色?

iphone - 从服务器获取数据到 iPhone sdk

ios - iPhone 应用程序不会将字符串添加到数组,仅限 64 位

java - 如何在本地开发服务器上启用 Google Cloud Storage?

python - 与 GAE 的祖先一起工作

python-3.x - 本地主机 : how to get credentials to connect GAE Python 3 app and Datastore Emulator?

python - BottlePy 应用程序和 CherryPy 服务器未记录访问

python - 3D numpy 数组如何转置

python - 当我尝试使用一个函数来替换幂函数时不断收到错误,即当提高到 1/2 时

iphone - 从响应 NSString 中获取子字符串