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

WBOY
Release: 2016-06-23 14:09:56
Original
1154 people have browsed it

正在研究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,已结。

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template