【问题标题】:How server-side controllers handle multiple sessions from client?服务器端控制器如何处理来自客户端的多个会话?
【发布时间】:2017-06-03 01:44:50
【问题描述】:

我来自 JavaScript 背景,最近正在学习服务器端。我的印象是服务器端的控制器在与客户端交互方面是一对多的比例。

我有这个登录代码:

@expose('/login/', methods=('GET', 'POST'))
    def login_view(self):
        if request.method == 'GET':
            # Render template
        if request.method == 'POST':
            # Take email and password from form and check if 
            # user exists. If he does, log him in.
            login.login_user(user)

            # Store user_id in session for socketio use
            session['user_id'] = login.current_user.id

            # Redirect

我知道会话字典就像 JavaScript 的 localStorage 对应物,那么这是否意味着每个独特的客户端都有一个独特的控制器?因为如果多个客户端共享同一个控制器,它们会覆盖 session.user_id 吗?

【问题讨论】:

    标签: javascript python-2.7 model-view-controller flask flask-restful


    【解决方案1】:

    创建会话,在用户通过身份验证后在客户端(在 cookie 中)维护状态。

    因此,当用户使用电子邮件和密码登录时,服务器将识别(使用存储在数据库中的有效电子邮件和密码进行一些检查)。服务器现在可以在响应中使用令牌(以及可能的到期时间)设置 cookie。之后,来自该特定客户端的 HTTP 请求将具有一个令牌,服务器将使用该令牌来识别用户。

    基本上,每个会话都在客户端维护,控制器在服务器端检查有效性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      相关资源
      最近更新 更多