Аутентификация для
админа.
Главная
страница админки: 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')
 
Комментариев нет:
Отправить комментарий