CodeIgniter:离子auth库在创建新用户时出现salt错误

时间:2013-11-28 12:44:37

标签: mysql codeigniter ion-auth

当我尝试使用store_salt创建FALSE的用户时,它会给出以下错误

$config['salt_length'] = 10;
$config['store_salt']  = FALSE;

这是错误

Error Number: 1364

Field 'salt' doesn't have a default value

INSERT INTO `users` (`first_name`, `last_name`, `company`, `phone`, `username`, `password`, `email`, `ip_address`, `created_on`, `last_login`, `active`) VALUES ('xxx', 'yyy', 'zzz', '466', 'xxx.yyy', '', 'xxx@yyy.com', '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', 1385641604, 1385641604, 1)

Filename: C:\xampp\htdocs\atlas-dev\system\database\DB_driver.php

Line Number: 330

当我尝试使用store_salTRUE时,它没有给出错误,但没有考虑密码正确且用户无法登录。

你能帮忙解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

错误号:1364 最有可能是由于默认未设置或不允许空值。

将盐场从“NOT NULL”更改为“ALLOW NULL”。

  

ALTER TABLE用户MODIFY salt varchar(40)null;

这应该将其默认值重置为“ALLOW NULL”,允许您插入没有salt字段值的记录

如果使用盐,

$config['store_salt']  = TRUE;

它将更改您的密码加密算法,  默认密码,'密码',更改为  fbaa5e216d163a02ae630ab1a43372635dd374c0,默认盐。

答案 1 :(得分:0)

这个'store_salt'设置显然告诉Ion Auth是否在salt字段中插入内容。问题是该字段没有默认值,并且您没有在其中插入任何内容。 因此,要么将字段定义更改为具有默认值,要么使用salt。