第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Yii2用戶密碼加密后驗(yàn)證問題

Yii2用戶密碼加密后驗(yàn)證問題

Yii
蝴蝶刀刀 2018-08-08 00:15:16
使用Yii2框架,密碼字段為pass,rules中設(shè)定的pass長度范圍為6-20;原密碼為123456789,校驗(yàn)通過沒有問題,hash后存入數(shù)據(jù)庫,hash后的值肯定超過范圍了。此時pass字段值為hash后的值,沒有保存原密碼,不可逆加密。當(dāng)我更新用戶數(shù)據(jù)的時候$userInfo = User::findOne(['id'=>1]); $userInfo->last_time = time();//這個時候就會報(bào)錯,因?yàn)槊艽a長度不符合要求$userInfo->save(true);該如何解決這個問題?現(xiàn)在暫時做的就是修改rules范圍,但是這樣用戶原密碼長度的限制條件也跟著修改了。有沒有更好的解決方案?
查看完整描述

2 回答

?
心有法竹

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個贊

如果你是用的YII2 advanced的話,你可以看下它默認(rèn)的用戶模型和默認(rèn)的migration。

用戶模型里的password字段已經(jīng)是被定義過了,你無需再次定義。

你把你的password字段改為password_hash,保存的時候禁止前端展示和發(fā)送password_hash(這個可以在rule控制)并把password這個字段帶過來,如果password不為空,則在更新用戶信息前執(zhí)行$user->setPassword(Yii::$app->request->post('password'))即可(或者寫在用戶模型的beforeSave方法里也行)


查看完整回答
反對 回復(fù) 2018-08-12
?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個贊

可以把從 model::scenarios() 里定義的 self::SCENARIO_DEFAULT 的值中去掉 password, 
從而在default-scenario下不再驗(yàn)證password

查看完整回答
反對 回復(fù) 2018-08-12
  • 2 回答
  • 0 關(guān)注
  • 1242 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號