热搜:NVER node 开发 php

ThinkPHP 中USER_AUTH_KEY 什么作用? 把session存在C('USER_AUTH_KEY’) 中有什么好处?

2024-09-12 09:50:01
ThinkPHP 中USER_AUTH_KEY 什么作用? 把session存在C('USER_AUTH_KEY’) 中有什么好处?

正在研究ThinkPHP中登录检测,登录成功保存Session看到两种形式,第一种:Session::set('username',$_POST['username']);
第二种:
Session::set(C(‘USER_AUTH_KEY’),$username);

第二种方法需要在配置文件中写 'USER_AUTH_KEY'=>'authId',
请大牛解释下两种方法有什么不同么?第二种里面设置这个USER_AUTH_KEY 干嘛?

有人说是为了防止在一个域名下 运行多套thinkphp登陆时 存放用户id的session发生冲突。但是想来想去不知道如果不这样会发生怎样的冲突,会出现两个会话的session id相同的情况?


回复讨论(解决方案)

其实两种都是设置Session只是,后一种session的key被固化在了配置文件中,很多时候只要修改配置文件的USER_AUTH_KEY配置节下面的值就能改变session的Key

我认为,主要是为了对session加密进行使用的。

其实两种都是设置Session只是,后一种session的key被固化在了配置文件中,很多时候只要修改配置文件的USER_AUTH_KEY配置节下面的值就能改变session的Key
那在使用Session方面会发生一楼所说的冲突的情况吗?

我认为,主要是为了对session加密进行使用的。
从哪里加密呢?session在使用时需要加密么?

你可以加密也可以不加密这个取决如你。


我认为,主要是为了对session加密进行使用的。
从哪里加密呢?session在使用时需要加密么?
对数据的加密是一种好习惯,例子:md5(sessionid+'USER_AUTH_KEY'),存入的时候就存这个值,解密就不多说了,他可以根据不同的用户类型使用不同的USER_AUTH_KEY 如:管理员使用ADMIN_USER_AUTH_KEY。
这些在密码中很常用,谁都不希望把明文的密码保存到数据库吧。
我的解释完毕,希望对你有帮助。



我认为,主要是为了对session加密进行使用的。
从哪里加密呢?session在使用时需要加密么?
对数据的加密是一种好习惯,例子:md5(sessionid+'USER_AUTH_KEY'),存入的时候就存这个值,解密就不多说了,他可以根据不同的用户类型使用不同的USER_AUTH_KEY 如:管理员使用ADMIN_USER_AUTH_KEY。
这些在密码中很常用,谁都不希望把明文的密码保存到数据库吧。
我的解释完毕,希望对你有帮助。
如果我不把session放数据库里,而是直接放到服务器硬盘里或者缓存里,加密就没什么意义了吧?

大家讲了这么多,没有讲到我比较疑惑的session冲突问题,我怎么感觉同一个服务器session冲突的可能性几乎不存在呢?

哦,原来楼主是纠结这个啊,同一台机器是不存在你说的那种session冲突的呀,建议楼主把session原理好好复习一下。

综上呢,我比较倾向于2楼所说。楼上也给了我很好的启发,谢谢!另外,是不是要结贴?分怎么散?

OK,已结。