У меня есть страница профиля пользователя и страница профиля пользователя / настроек, проблема в том, что я сделал промежуточное программное обеспечение для страницы настроек, чтобы любой авторизованный пользователь не заходил на страницу настроек других пользователей или не обновлял их, если только авторизованный пользователь не сопоставил идентификатор или слизьно я использую Vue всякий раз, когда использую маршруты API для извлечения или обновления данных, которые, как они говорят, неавторизованы 401 или 500.
middleware:
public function handle($request, Closure $next)
{
if ($request->slug != auth()->user()->slug) {
return redirect()->to('/');
}
return $next($request);
}
Маршрут API:
Route::get('/profile/{slug}','ProfilePrivateController@show')->middleware('editProfile');;
VueJs:
update(){
axios.put(`/api/profile/${this.id}`,{
email : this.email,
username : this.name,
password : this.password,
education_level : this.education_level,
fb_url : this.fb_url,
twitter_url : this.twitter_url,
field : this.field
})
.then(res=>console.log(res))
}
Контроллер:
public function show($slug)
{
$user = User::findBySlugOrFail($slug);
return response()->json($user);
}
public function update(Request $request, $slug)
{
$user = User::findBySlug($slug);
$user->update([
'email'=>$request->email,
'education_level'=>$request->education_level,
'field'=>$request->field,
'school'=>$request->school,
'fb_url'=>$request->fb_url,
'twitter_url'=>$request->twitter_url,
]);
if($request->has('password')){
$user->save([
'password'=>$request->password
]);
}
return response()->json('user updated',200);
}
Я хочу позволить пользователю обновлять свои настройки и одновременно защищать API.
Я действительно потерян в этот момент Любая помощь приветствуется!