2017-06-21 179 views
-1

我创建了一个项目来模拟登录我公司的网站,并将其放入我的服务器以让其他人使用。我该如何限制Flask的访问

但是公司网站有单个ip的限制,只能打开2个会话。

因此,当2个以上的同事登录我的项目时,第三个无法登录。

有没有办法限制访问,所以当有2个用户正在使用,第三个无法登录。

我应该使用全局变量来存储一些当前用户吗?

回答

0

您可以在IP地址,用户ID或登录和记录的最后一次保存到你的应用程序到数据库和对证时,在某些用户登录。

如果用户登录,您存储他/她的IP地址,ID /登录和上次登录到应用程序的时间。如果尝试从同一个IP地址第三次登录,则拒绝它。

当用户注销时,您从数据库中删除记录。

当用户会话自动到期但记录在数据库中时,您需要小心。

为了避免您可以将永久会话设置为True(即使浏览器关闭,会话也不会被销毁),并将其持续时间设置为固定时间 - 比如48小时。然后,您可以创建一个程序,该程序将在您的数据库中定期运行,并检查上次登录时间和会话持续时间。如果差异超过48小时,则从数据库中删除记录。

您还应该考虑您的IP地址是静态还是动态。使用静态IP地址应该更容易。随着动态 - 这取决于他们多久更换一次,但肯定会变得更加复杂。

你在用户登录之前可以得到他/她的IP地址这种方式:

from flask import request 

@app.route('/login', methods=['GET', 'POST']): 
def login(): 
    ip_address = request.remote_addr 
    # Check the ip_address and how many sessions are bound to it 
+0

我想限制多少用户登录,一个用户没有多少次login.But数据库也可以解决.Thanks –

+0

@ Dean.liu然后2个用户可以在你的公司有相同的IP地址? – Nurjan

+0

是的,这不重要,只是为了记录我们的日常工作。但用户体验太糟糕了,每天花费我将近15分钟。所以我想简化它。我尝试在我的笔记本电脑上使用chrome隐身登录登录不同的用户,只有2个用户可以登录,在我的服务器上这是相同的结果 –