В моем приложении Laravel информация профиля пользователя включает конфиденциальные данные, такие как номер налогового файла и банковские реквизиты.Поскольку приложение часто используется с помощью мобильного телефона (и люди регулярно теряют свой мобильный телефон), я разделил профиль пользователя на «финансовые данные» и «другие данные».
Если кто-то хочет получить доступ к финансовым даннымони должны предоставить пароль пользователя.Маршрут принимает как POST, так и GET, и вот код контроллера:
public function showDetails(Request $request)
{
if ($request->isMethod('post')) {
$user = Auth::user();
if (Hash::check($request->password, $user->password)) {
return view('staff.finance-info', compact('user'));
} else {
$request->session()->flash('auth_failed', 'Password incorrect');
}
}
return redirect()->route('staff.profile');
}
Я принимаю GET, чтобы я мог изящно перенаправить запрос в профиль «Прочие сведения».
Это прекрасно работает для просмотра деталей, однако теперь мне нужно указать маршруты для обновления информации.(Один для банковских реквизитов, один для налоговых и т. Д.).Я не хочу, чтобы пользователю приходилось повторно вводить свой пароль на каждой из этих страниц.
Каков типичный способ обработки этого сценария?Возможно, выпуская какой-то токен?Должен ли я просто создать случайный токен и сохранить его в качестве значения с истекающим сроком в сеансе?Какие еще есть варианты?