回答編集履歴

2

誤字修正

2019/10/04 02:51

投稿

tacsheaven
tacsheaven

スコア13703

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  2. AuthComponent の設定に従い、対象となる DB のテーブルを決定する(UserModel, Fieldsを使う)
28
28
 
29
- 3. UserModel の _setPassword を使い、平文のパスワードから変換を行う
29
+ 3. UserModel の パスワードフィールドに対する setter を使い、平文のパスワードから変換を行う
30
30
 
31
31
  4. ユーザーID、(変換後の)パスワードで、対象の UserModel で合致するレコードを探す
32
32
 

1

解決策を追記

2019/10/04 02:51

投稿

tacsheaven
tacsheaven

スコア13703

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  ```
16
16
 
17
- _setPassword 時に DefaultPasswordHasher:hash を呼び出していますから、DB に記載されているパスワードが「真のパスワードから計算したハッシュ値であること」を前提としています。
17
+ _setAdminPass 時に DefaultPasswordHasher:hash を呼び出していますから、DB に記載されているパスワードが「真のパスワードから計算したハッシュ値であること」を前提としています。
18
18
 
19
19
  実際のデータがそうなっていないので、そりゃ計算したハッシュ値が合致しないから認証エラーになりますね。
20
20
 
@@ -35,3 +35,17 @@
35
35
 
36
36
 
37
37
  という流れです
38
+
39
+
40
+
41
+ さて、ではどうすればいいかというと、二つ解決策があります。
42
+
43
+
44
+
45
+ 1. データベースに記録しているパスワードを、正しくハッシュ値にする
46
+
47
+ 2. _setAdminPass の結果を平文のまま(return $value) として、素通しする
48
+
49
+
50
+
51
+ まあ、2. はあくまで一時的な話に留めないとダメですが。