目前登录后,Lithium会在会话和cookie中存储来自用户表的所有行,如密码,哈希等。如何删除(不允许存储)密码和哈希等信息?
答案 0 :(得分:2)
Session类存储您告诉它的内容!在Auth :: check完成后,您应该只在cookie中存储会话标识符和/或绝对必要的数据。另外,请确保使用锂(AES)提供的加密功能。
如需更详细的帮助,请发布您的登录控制器和所有相应的型号/过滤器。
答案 1 :(得分:0)
将选项传递给Auth::check
也会传递给适配器(加上一些额外内容) - 为此我假设你正在使用Form
适用于Auth
类的适配器。
执行检查时尝试执行此操作:Auth::check('config', $data, array('fields' => array('fields', 'you', 'want'))
这里的关键是我们在最后用fields
键添加的数组,这将传递给Form
适配器,它接受这些选项并使用它们来查询模型对于匹配的用户。通过明确告诉它返回哪些字段,它只会将它们传递回Auth
类以便存储。
答案 2 :(得分:0)
由于this commit您可以将选项'persist' => array('field1','..')
传递给Auth::check
,或者在引导会话配置中将它们设置为默认值,因此只能存储指定的字段。
所以你要么在bootstrap / session.php
中设置它Auth::config(array(
'user' => array(
'adapter' => 'Form',
'session' => array(
'persist' => array('_id','username')
),
'model' => 'Users'
)
));
或者在调用Auth::check()
时定义字段 - 这将覆盖上面配置中的所有内容!
Auth::check('user', $this->request, array(
'persist' => array('username','email')
))
注意:如果没有明确定义,默认情况下永远不会存储密码。