让用户登录,然后检查某人是否已登录

时间:2016-05-05 19:38:18

标签: authentication mysql session python

我在安全方面很可怕,所以如果你们有任何想法,我很好奇。我最近在Python中编写了一个应用程序,我将出售给选择人员。关于应用程序的信息是私有的(不是那么令人难以置信,我只需要一个最小的解决方案)。我怎么能让用户登录到应用程序(从MySQL数据库),然后程序检查是否有人已经在这些凭据下登录。这是一个基本流程:

  1. 用户打开EXE(cx_freezed python文件)
  2. 程序要求用户登录(来自MySQL数据库)
  3. 程序检查是否有人已使用该信息登录
  4. 如果有人登录,请不要让他们登录。如果有人不登录,请将其登录。
  5. 我完全不知道从哪里开始,有什么建议/方向指向我?

1 个答案:

答案 0 :(得分:0)

  1. 不要成为Dave并推出自己的安全系统。如果可以,请使用现有的

  2. 这不应该与您的数据库有任何关系。如果您碰巧将会话信息保存到数据库,那很好,但您的会话管理应该在内存中

  3. 基本上,您应该在应用程序状态的某个位置的内存中有一个经过身份验证的用户列表。 if authenticatedSessions.get($username) != null then deny

  4. 并发会话控制是用户的PITA。示例:您在离开工作之前登录,然后上车,尝试从您的手机登录,现在您无法登录。考虑允许2个并发会话,或保持超时

  5. Spring Security(Java)具有此功能。它是开源的,所以你可以获得灵感"它:http://docs.spring.io/autorepo/docs/spring-security/current/reference/htmlsingle/#ns-concurrent-sessions