Напишем свой маршрут в файле routes/web.php
// admin/add/post
Route::group(['prefix'=>'admin', 'middleware'=>'auth'], function() {
});
В версии 5.4 нет посредника аутентификации. В\app\Http\Middleware\ нет файла Authenticate.php.
В \app\Exceptions\Handler.php есть похожая часть:
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
return redirect()->guest(route('login'));
}
Аутентификация реализуется через сессии.
Сессии подключаются в файле Kernel.php через класс-посредник:
\Illuminate\Session\Middleware\StartSession::class,
Допишем маршруты в файле routes/web.php
Route::group(['middleware' => 'web'], function () {
Route::auth();
//Route::get('/home', 'HomeController@index');
});
//Route::auth();
// admin/edit/post
Route::group(['prefix'=>'admin','middleware'=>['web']],function() {
// admin/
Route::get('/',['uses'=>'Admin\AdminController@show','as'=>'admin_index']);
Route::get('/add/post',['uses'=>'Admin\AdminPostController@create','as'=>'admin_add_post']);
});
Идем в консоль и пишем команду: php artisan make:controller Admin\AdminController
и
php artisan make:controller Admin\AdminPostController
В app\Http\Controllers\Admin\AdminController.php сформируем метод show().
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class AdminController extends Controller
{
public function show() {
return view('welcome');
}
}
Регистрация \resources\views\auth\register.blade.php
Добавим новое поле логин в шаблон.
<div class="form-group{{ $errors->has('login') ? ' has-error' : '' }}">
<label for="name" class="col-md-4 control-label">Login</label>
<div class="col-md-6">
<input id="name" type="text" class="form-control" name="login" value="{{ old('login') }}" required autofocus>
@if ($errors->has('login'))
<span class="help-block">
<strong>{{ $errors->first('login') }}</strong>
</span>
@endif
</div>
</div>
Идем в БД в таблицу users и добавляем новое поле.
login varchar 255 NULL
Без null не вставляет.
Добавим правила для валидации логина: \app\Http\Controllers\Auth\RegisterController.php
return Validator::make($data, [
'name' => 'required|string|max:255',
'login' => 'required|string|max:255|unique:users,login',
'email' => 'required|string|email|max:255',
'password' => 'required|string|min:6|confirmed',
]);
Далее:
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'login' => $data['login'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
Сделаем аутентификацию с использованием логина, а не емейла.
Идем в \resources\views\auth\login.blade.php и переписываем поле.
<div class="form-group{{ $errors->has('login') ? ' has-error' : '' }}">
<label for="login" class="col-md-4 control-label">Login</label>
<div class="col-md-6">
<input id="email" type="text" class="form-control" name="login" value="{{ old('login') }}" required autofocus>
@if ($errors->has('login'))
<span class="help-block">
<strong>{{ $errors->first('login') }}</strong>
</span>
@endif
</div>
</div>
В \app\Http\Controllers\Auth\LoginController.php дописываем:
\app\Http\Controllers\Auth\LoginController.php
public function username()
{
return 'login';
}
В моделе \app\User.php напишем:
protected $fillable = [
'name', 'email', 'password', 'login'
];
воскресенье, 23 июля 2017 г.
LARAVEL. АУТЕНТИФИКАЦИЯ ПОЛЬЗОВАТЕЛЕЙ. ЧАСТЬ 2.
Подписаться на:
Комментарии к сообщению (Atom)
Materialize-css. Футер
Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html
-
Сделаем футер и прижмем к низу страницы. Документация: https://materializecss.com/footer.html
-
Простое API. HTTP. Урок 1. Справка о методе PUT.
-
Класс Request - абстракция отправляемого запроса пользователя.
Комментариев нет:
Отправить комментарий