Аутентификация для
админа.
Главная
страница админки: http://blog.my/admin/home
Возьмем шаблон для
страницы логина отсюда: \Row
files\admin\pages\examples\login.html
и скопируем его в новую
страницу.
Создадим новую страницу
\resources\views\admin\login.blade.php
<!DOCTYPE html>
<html>
<head>
<meta
charset="utf-8">
<meta
http-equiv="X-UA-Compatible" content="IE=edge">
<title>Blog
Admin | Log in</title>
<!-- Tell the
browser to be responsive to screen width -->
<meta
content="width=device-width, initial-scale=1, maximum-scale=1,
user-scalable=no" name="viewport">
<!--
Bootstrap 3.3.7 -->
<link
rel="stylesheet" href="{{
asset('admin/bower_components/bootstrap/dist/css/bootstrap.min.css')
}}">
<!-- Font
Awesome -->
<link
rel="stylesheet" href="{{
asset('admin/bower_components/font-awesome/css/font-awesome.min.css')
}}">
<!-- Ionicons
-->
<link
rel="stylesheet" href="{{
asset('admin/bower_components/Ionicons/css/ionicons.min.css') }}">
<!-- Theme
style -->
<link
rel="stylesheet" href="{{
asset('admin/dist/css/AdminLTE.min.css') }}">
<!-- iCheck
-->
<link
rel="stylesheet" href="{{
asset('admin/plugins/iCheck/square/blue.css') }}">
<!-- HTML5
Shim and Respond.js IE8 support of HTML5 elements and media queries
-->
<!-- WARNING:
Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE
9]>
<script
src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- Google
Font -->
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
</head>
<body
class="hold-transition login-page">
<div
class="login-box">
<div
class="login-logo">
<a
href="../../index2.html"><b>Admin</b>Blog</a>
</div>
<!--
/.login-logo -->
<div
class="login-box-body">
<p
class="login-box-msg">Sign in to start your session</p>
<form
action="{{ route('admin.login') }}" method="post">
{{
csrf_field() }}
<div
class="form-group has-feedback">
<input
type="email" class="form-control" name="email"
placeholder="Email">
<span
class="glyphicon glyphicon-envelope
form-control-feedback"></span>
</div>
<div
class="form-group has-feedback">
<input
type="password" class="form-control"
name="password" placeholder="Password">
<span
class="glyphicon glyphicon-lock form-control-feedback"></span>
</div>
<div
class="row">
<div
class="col-xs-8">
<div
class="checkbox icheck">
<label>
<input type="checkbox"> Remember Me
</label>
</div>
</div>
<!--
/.col -->
<div
class="col-xs-4">
<button
type="submit" class="btn btn-primary btn-block
btn-flat">Sign In</button>
</div>
<!--
/.col -->
</div>
</form>
<a
href="#">I forgot my password</a><br>
</div>
<!--
/.login-box-body -->
</div>
<!--
/.login-box -->
<!-- jQuery 3
-->
<script src="{{
asset('admin/bower_components/jquery/dist/jquery.min.js')
}}"></script>
<!-- Bootstrap
3.3.7 -->
<script src="{{
asset('admin/bower_components/bootstrap/dist/js/bootstrap.min.js')
}}"></script>
<!-- iCheck -->
<script src="{{
asset('admin/plugins/iCheck/icheck.min.js"></script>
<script>
$(function () {
$('input').iCheck({
checkboxClass: 'icheckbox_square-blue',
radioClass:
'iradio_square-blue',
increaseArea: '20%' // optional
});
});
</script>
</body>
</html>
Создадим маршрут в
routes\web.php
//
Admin Routes
Route::group(['namespace' => 'Admin'], function() {
Route::get('admin/home', 'HomeController@index')->name('admin.home');
Route::resource('admin/user', 'UserController');
Route::resource('admin/post', 'PostController');
Route::resource('admin/tag', 'TagController');
Route::resource('admin/category', 'CategoryController');
// Аутентификация
Route::get('admin-login', 'Auth\LoginController@showLoginForm')->name('admin.login');
});
Route::group(['namespace' => 'Admin'], function() {
Route::get('admin/home', 'HomeController@index')->name('admin.home');
Route::resource('admin/user', 'UserController');
Route::resource('admin/post', 'PostController');
Route::resource('admin/tag', 'TagController');
Route::resource('admin/category', 'CategoryController');
// Аутентификация
Route::get('admin-login', 'Auth\LoginController@showLoginForm')->name('admin.login');
});
Скопируем из
контроллеров папку Auth и
вставим ее в папку \app\Http\Controllers\Admin
Откроем файл
\app\Http\Controllers\Admin\LoginController.php (у
всех остальных файлов)
и изменим
namespace на
namespace
App\Http\Controllers\Admin\Auth;
В
файле \app\Http\Controllers\Admin\LoginController.php
<?php
namespace App\Http\Controllers\Admin\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/home';
public function showLoginForm() {
return view('admin.login');
}
public function __construct()
{
$this->middleware('guest')->except('logout');
}
}
namespace App\Http\Controllers\Admin\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/home';
public function showLoginForm() {
return view('admin.login');
}
public function __construct()
{
$this->middleware('guest')->except('logout');
}
}
Теперь
по адресу http://blog.my/admin-login
открывается форма авторизации.
Создадим
маршрут для входа в админку.
В
routes\web.php
Route::post('admin-login',
'Auth\LoginController@login');
Далее
в файле \app\Http\Controllers\Admin\LoginController.php
<?php
namespace App\Http\Controllers\Admin\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/home';
public function showLoginForm() {
return view('admin.login');
}
public function login(Request $request)
{
$this->validateLogin($request);
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}
return $this->sendFailedLoginResponse($request);
}
public function __construct()
{
$this->middleware('guest')->except('logout');
}
}
namespace App\Http\Controllers\Admin\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
use AuthenticatesUsers;
protected $redirectTo = '/home';
public function showLoginForm() {
return view('admin.login');
}
public function login(Request $request)
{
$this->validateLogin($request);
if ($this->attemptLogin($request)) {
return $this->sendLoginResponse($request);
}
return $this->sendFailedLoginResponse($request);
}
public function __construct()
{
$this->middleware('guest')->except('logout');
}
}
Идем
в \resources\views\admin\login.blade.php
И
перед формой входа подключаем вывод
сообщений.
@include('includes.messages')
Комментариев нет:
Отправить комментарий