質問編集履歴

2

テキスト修正

2022/07/10 07:12

投稿

Fukusuke0604
Fukusuke0604

スコア555

test CHANGED
File without changes
test CHANGED
@@ -1,19 +1,16 @@
1
1
  Laravel9 Breezeを用いて、デフォルトのUserテーブルに加えて、Adminテーブルでのマルチログイン機能を実装しました。
2
2
 
3
- Adminでのログイン、登録は動作しています。
3
+ Adminアカウントでの登録、ログインは動作しています。
4
4
 
5
- しかし、Adminユーザーでのパスワードリセットを行うと、ブラウザで
6
-
7
- Error
8
- Class "Illuminate\Auth\Notifications\AdminResetPassword" not found
5
+ しかし、Adminユーザーでのパスワードリセット(localhost/admin/reset-password/)を行うと、
9
-
6
+ 「このメールアドレスに一致するユーザーがいません。」
10
7
  となります。
11
8
 
12
9
 
13
10
 
14
- 以下の手順で、Adminユーザーでのパスワードリセットを実装しました。
15
11
 
16
12
 
13
+ 以下の手順で、Adminユーザーでのパスワードリセットを実装しました。
17
14
 
18
15
  1.Admin登録mailアドレスにリセットメールが送信されるように、PasswordResetLinkController.phpファイルのPasswordファサードの後にbrokerメソッドを追加
19
16
  ```PHP
@@ -30,9 +27,14 @@
30
27
  // to send the link, we will examine the response then see the message we
31
28
  // need to show to the user. Finally, we'll send out a proper response.
32
29
 
30
+ $status = Password::sendResetLink(
31
+ $request->only('email')
32
+ );
33
+ //以下のコードを追加
33
34
  $status = Password::broker('admins')->sendResetLink(
34
35
  $request->only('email')
35
36
  );
37
+ //追加ここまで
36
38
 
37
39
  return Password::RESET_LINK_SENT == $status
38
40
  ? back()->with('status', __($status))
@@ -43,12 +45,17 @@
43
45
  上記でadminアカウントのリセットメールが受信されるようになりました。
44
46
 
45
47
 
46
- 2.vender/laravel/framework/src/illminate/Notifications/「ResetPassword.php」ファイルをコピーして、新たにAdminResetPassword.phpファイルをvender/laravel/framework/src/illminate/Notifications/に作成
48
+ 2.vender/laravel/framework/src/illminate/Notifications/「ResetPassword.php」の内容をコピーして、新たにAdminResetPassword.phpファイルをResetPassword.phpと同じ階層に作成
47
49
 
48
50
  ResetPassword.phpファイルをコピーしたAdminResetPassword.phpで、以下の箇所を変更しました。
49
51
  ```PHP
50
52
  AdminResetPassword.php
51
53
 
54
+ // class ResetPassword extends Notification
55
+ class AdminResetPassword extends Notification
56
+
57
+
58
+ //function buildMailMessage($url)、 function resetUrl($notifiable)を編集
52
59
 
53
60
  protected function buildMailMessage($url)
54
61
  {
@@ -59,6 +66,7 @@
59
66
  ->line(Lang::get('This password reset link will expire in :count minutes.', ['count' => config('auth.passwords.admins'.config('auth.defaults.passwords').'.expire')]))
60
67
  ->line(Lang::get('If you did not request a password reset, no further action is required.'));
61
68
  }
69
+
62
70
 
63
71
  protected function resetUrl($notifiable)
64
72
  {
@@ -100,18 +108,18 @@
100
108
 
101
109
  ```
102
110
 
103
- しかし、パスワードリセットメッセージのボタンにアクセスすると、冒頭のエラー
104
- Class "Illuminate\Auth\Notifications\AdminResetPassword" not found
111
+ パスワードリセット(http://localhost/admin/forgot-password)からパスワード再設定用のURLをメールに送信すると、「Admin Reset Password Notification」というタイトルでパスワードリセットのリンク付きメッセージが受信されます。
105
112
 
106
- なります。。。。
113
+ Admin Reset Password Notificationメール本文の「パスワード再設定」ボタンをクリックする、localhost/admin/reset-password/へ遷移します。
107
114
 
108
- しかし、AdminResetPassword.PHPは添付画像のようにIlluminate\Auth\Notifications\AdminResetPasswordにりま
115
+ localhost/admin/reset-password/でパスワードを再設定すると、「このメールアドレス一致するユーザーがいません。」とな、adminユーザのパスワード再設定が完了しせん
116
+
109
117
 
110
118
  パスワードリセットに関しては以下の記事を参照しました。
111
119
  https://reffect.co.jp/laravel/breeze_multi_auth#i-19
112
120
  ※記事はLaravel8で説明しています。
113
121
 
114
- 記事を何度も見直し、記事と相違ある箇所は無いよう思うのですが、Laravelの知識まだなのでどこを修正していいのかかりません。。。。
122
+ パスワード再設定laravelがadminテーブルを参照出来ていないのが原因と思うのですが、どこを修正すればいいのかかりません。
115
123
 
116
124
 
117
125
 

1

記事修正

2022/07/10 06:19

投稿

Fukusuke0604
Fukusuke0604

スコア555

test CHANGED
File without changes
test CHANGED
@@ -2,14 +2,20 @@
2
2
 
3
3
  Adminでのログイン、登録は動作しています。
4
4
 
5
- しかし、Adminユーザーでのパスワードリセットを行うと、
5
+ しかし、Adminユーザーでのパスワードリセットを行うと、ブラウザで
6
+
7
+ Error
6
- 「このメールアドレスに一致するユーザーがいません。」となってしまいます。
8
+ Class "Illuminate\Auth\Notifications\AdminResetPassword" not found
9
+
10
+ となります。
11
+
12
+
7
13
 
8
14
  以下の手順で、Adminユーザーでのパスワードリセットを実装しました。
9
15
 
10
16
 
11
17
 
12
- 1.Admion登録mailアドレスにリセットメールが送信されるように、PasswordResetLinkController.phpファイルのPasswordファサードの後にbrokerメソッドを追加
18
+ 1.Admin登録mailアドレスにリセットメールが送信されるように、PasswordResetLinkController.phpファイルのPasswordファサードの後にbrokerメソッドを追加
13
19
  ```PHP
14
20
  PasswordResetLinkController.php
15
21
 
@@ -34,11 +40,12 @@
34
40
  ->withErrors(['email' => __($status)]);
35
41
  }
36
42
  ```
37
- リセットメール受信されるようになりました。
43
+ 上記でadminアカウントのリセットメール受信されるようになりました。
38
44
 
39
- 2.ResetPassword.phpファイルをコピーして新たにAdminResetPassword.phpファイルをvender/laravel/framework/src/illminate/Notificationsに作成
40
45
 
46
+ 2.vender/laravel/framework/src/illminate/Notifications/「ResetPassword.php」ファイルをコピーして、新たにAdminResetPassword.phpファイルをvender/laravel/framework/src/illminate/Notifications/に作成
47
+
41
- ResetPassword.phpファイルをコピーしたAdminResetPassword.php以下の箇所を変更しました。
48
+ ResetPassword.phpファイルをコピーしたAdminResetPassword.phpで、以下の箇所を変更しました。
42
49
  ```PHP
43
50
  AdminResetPassword.php
44
51
 
@@ -66,7 +73,7 @@
66
73
  }
67
74
  ```
68
75
 
69
- 3.app¥Moldes¥Admin.phpファイルにsendPasswordResetNotificationメソッドを追加
76
+ 3.app/Moldes/Admin.phpファイルにsendPasswordResetNotificationメソッドを追加
70
77
 
71
78
  ```PHP
72
79
  Admin.php
@@ -78,6 +85,8 @@
78
85
  use Illuminate\Foundation\Auth\User as Authenticatable;
79
86
  use Illuminate\Notifications\Notifiable;
80
87
  use Laravel\Sanctum\HasApiTokens;
88
+ use Illuminate\Auth\Notifications\AdminResetPassword as ResetPasswordNotification;
89
+
81
90
  class Admin extends Authenticatable implements MustVerifyEmail
82
91
  {
83
92
  use HasApiTokens;
@@ -91,11 +100,19 @@
91
100
 
92
101
  ```
93
102
 
94
- しかし、
95
- パスワードリセットメッセージのボタンにアクセスすると、
103
+ しかし、パスワードリセットメッセージのボタンにアクセスすると、冒頭のエラー
96
- localhost/reset-password へ遷移します。
104
+ Class "Illuminate\Auth\Notifications\AdminResetPassword" not found
97
105
 
106
+ となります。。。。
107
+
98
- localhost/admin/reset-password とURLを直接入力してパスワードリセット画面を表示し、パスワードの再設定を行うも、「このメールアドレス一致するユーザーがいせん。」となってしまいます。。。。。
108
+ しかし、AdminResetPassword.PHPは添付画像のようにIlluminate\Auth\Notifications\AdminResetPasswordにあります。
109
+
110
+ パスワードリセットに関しては以下の記事を参照しました。
111
+ https://reffect.co.jp/laravel/breeze_multi_auth#i-19
112
+ ※記事はLaravel8で説明しています。
113
+
114
+ 記事を何度も見直し、記事と相違のある箇所は無いように思うのですが、Laravelの知識がまだまだなのでどこを修正していいのかわかりません。。。。
99
115
 
100
116
 
101
117
 
118
+