Я начал создавать свое собственное очень простое приложение для блога, которое будет состоять из главной страницы с сообщениями и админ-панели, доступной только для меня. Я не хочу, чтобы зрители имели доступ к странице входа в систему, она должна быть только для одного пользователя - администратора.
У меня уже есть панель администратора, из которой я могу создавать, редактировать, просматривать и удалять сообщения, хранящиеся в базе данных MySQL, также сообщения отображаются на главной странице. Моя проблема в том, что я борюсь за защиту панели администратора от незарегистрированных пользователей.
Как мне это сделать, идея такова: если вы вошли в систему - вы являетесь администратором, вы можете получить доступ к панели администратора, просмотры которой хранятся в views / admin, если нет - вы можете видеть только те сообщения, которые отображаются на главной страница в папке просмотров.
publicHomePageTemplate.blade.php (часть, отвечающая за отображение сообщений)
@ foreach ($ статьи как $ статья)
<div class="well well-lg">
<h3>{{$article->title}}</h3>
<p>{{$article->body}}</p>
</div>
@endforeach
Контроллер статьи
namespace App \ Http \ Controllers;
использовать Illuminate \ Http \ Request;
использовать приложение \ Статья;
класс ArticleController расширяет контроллер
{
/ **
* Отображение списка ресурсов.
*
* @return \ Illuminate \ Http \ Response
* /
публичная функция publicHomePage ()
{
$ article = Article :: paginate (4);
return view('articles/publicHomePageTemplate', ['articles'=>$articles]);
}
public function index()
{
$articles = Article::latest()->paginate(5);
return view('admin.index',compact('articles'))
->with('i', (request()->input('page', 1) - 1) * 5);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('admin.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
request()->validate([
'title' => 'required',
'body' => 'required',
]);
Article::create($request->all());
return redirect()->route('admin.index')
->with('success','Article created successfully');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$article = Article::find($id);
return view('admin.show',compact('article'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$article = Article::find($id);
return view('admin.edit',compact('article'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
request()->validate([
'title' => 'required',
'body' => 'required',
]);
Article::find($id)->update($request->all());
return redirect()->route('admin.index')
->with('success','Article updated successfully');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
Article::find($id)->delete();
return redirect()->route('admin.index')
->with('success','Article deleted successfully');
}
}
До сих пор я начал реализовывать систему аутентификации с помощью php artisan: make auth
Есть идеи, как решить эту проблему