开源php框架的symfony中的一个很有名的扩展sfGuard

优采云 发布时间: 2021-05-19 23:13

  开源php框架的symfony中的一个很有名的扩展sfGuard

  我告诉您开源PHP框架的symfony中著名的sfGuard扩展是如何做到的,并可能给您一些想法:

  首先,您的数据库需要一个Rememberkey表:它收录以下三个字段:

  user_id,remember_key(字符串(3 2),唯一),ip_address),当然,还有两个时间字段created_at和updated_at几乎是必需的,因此未提及。

  如果用户选中后登录时记得我

  然后使用md5的随机值(例如timestamp + rand(0,999999 9))来生成一个Remember_key。由于随机变化仍然很大,因此Remember_key几乎不可能生成重复密钥。

  然后将此密钥存储在客户端cookie和数据库中。 Cookie的存储时间是您记住密码设置的时间长度。另外,该IP必须记录在数据库中。

  如果用户单击注销以注销会话,则在删除会话时,cookie中的Remember_key和数据库中相应的密钥记录也将被删除。当然,为了防止越来越多的垃圾数据,您现在也可以全部传递。删除所有无效密钥

  如果用户下次访问该页面,但会话已过期,则检查是否存在Remember_key cookie。如果存在,请使用此值和访问的ip在数据库中查找记录。如果找到,则此记录的user_id将自动登录相应的用户。

  当然,您可以进行一些修改。例如,ip不一定是必需的,因为家庭用户的ip会变老并发生变化。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线