У меня есть две отдельные авторизации для проекта: одна для врачей (вход, регистрация и сброс) [таблица счетов], а другая для пациентов (клиенты) (вход, регистрация и сброс) [таблица пациентов].
Каждый пациент может быть зарегистрирован одним и тем же письмом с любым врачом (Учетная запись).
Я сделал все, но моя проблема в том, что пациент сбрасывает свой пароль в определенной учетной записи доктора.Laravel меняет пароль почты пациента в таблице пациентов.
Мой вопрос: как добавить условие в метод resetPassword
Пример: где mail = $ mail и account_id = $account_id
Мне удалось переопределить метод sendRequestResetLinkMail с помощью
PatientAuth \ ForgotPasswordController.php:
public function sendResetLinkEmail(Request $request)
{
$this->validate($request, [
'email' => 'required|email',
]);
$response = $this->broker()->sendResetLink([
'email' => $request->input('email'),
'account_id' => Hashids::decode($request->segment(3)),
]);
return $response == Password::RESET_LINK_SENT
? $this->sendResetLinkResponse($response)
: $this->sendResetLinkFailedResponse($request, $response);
}
ResetPasswordController.php:
class ResetPasswordController extends Controller
{
public function __construct()
{
$this->middleware('lang');
}
//Client redirect path
protected function redirectTo(Request $request)
{
return route('WSG.view.home', $request->segments(3));
}
//trait for handling reset Password for patient / client
use ResetsPasswords;
//Show form to patient / client where they can reset password
public function showResetForm(Request $request, $id, $token = null)
{
$id = Hashids::decode($id);
$main_settings = WSGeneratorMainSetting::where('account_id', $id)->first();
return view('doctor_website.layouts.reset',
[
'token' => $token,
'email' => $request->email,
'main_settings' => $main_settings,
]
);
}
protected function credentials(Request $request)
{
return $request->only(
'email', 'password', 'password_confirmation', 'account_id' , 'token'
);
}
//returns Password broker of seller
public function broker()
{
return Password::broker('clients');
}
//returns authentication guard of seller
protected function guard()
{
return Auth::guard('client');
}
}