Laravel 5 вышел с красивым Auth scaffolding, в который вошли все маршруты/контроллеры/виды для регистрации и аутентификации пользователей. Но недавно я начал использовать Laravel 5.1 и заметил, что аутентификация больше не встроена. Как я могу добавить ее обратно?Как вы можете добавить аутентификацию на Laravel 5.1?
ответ
У Laravel уже есть документация по building authentication into your Laravel 5.1 app. Тем не менее, я буду пройти через это в немного более подробно ...
Установка Laravel
Во-первых, убедитесь, что у вас есть свежей установки Laravel. Вот мой учебник по Installing Laravel 5.1 on OSX with MAMP.
Добавить Twitter Bootstrap
После downloading bootstrap добавить файл bootstrap.css в каталог public/css
. (Вы, возможно, придется создать каталог CSS.
Также скопируйте fonts
каталог Bootstrap в в public
каталог приложения.
Добавить Authentication Маршруты
Добавить следующие маршруты в файл app/Http/routes.php
.
// Authentication routes...
Route::get('auth/login', 'Auth\[email protected]');
Route::post('auth/login', 'Auth\[email protected]');
Route::get('auth/logout', 'Auth\[email protected]');
// Registration routes...
Route::get('auth/register', 'Auth\[email protected]');
Route::post('auth/register', 'Auth\[email protected]');
// Password reset link request routes...
Route::get('password/email', 'Auth\[email protected]');
Route::post('password/email', 'Auth\[email protected]');
// Password reset routes...
Route::get('password/reset/{token}', 'Auth\[email protected]');
Route::post('password/reset', 'Auth\[email protected]');
Add Authentication Views
Для начала создадим чтобы использовать для всех наших других представлений. Мы можем сделать это, создав файл resources/views/auth/app.blade.php
. И скопируйте/вставьте код, указанный здесь: https://github.com/laravel/laravel/blob/5.0/resources/views/app.blade.php
Создайте новый каталог resources/views/auth
. Внутри этого каталога создайте следующие файлы.
- login.blade.php (https://github.com/laravel/laravel/blob/5.0/resources/views/auth/login.blade.php)
- password.blade.php (https://github.com/laravel/laravel/blob/5.0/resources/views/auth/password.blade.php)
- register.blade.php (https://github.com/laravel/laravel/blob/5.0/resources/views/auth/register.blade.php)
- reset.blade.php (https://github.com/laravel/laravel/blob/5.0/resources/views/auth/reset.blade.php)
Чтобы отправить электронное сообщение «забыл пароль», создайте каталог resources/views/emails
и поместите в него следующий файл.
- password.blade.php (https://github.com/laravel/laravel/blob/5.0/resources/views/emails/password.blade.php)
Создать базу данных & Таблицы
Чтобы сделать это так, что мы действительно можем зарегистрировать нового пользователя и логин, мы должны создать правильные таблицы базы данных. К счастью, это уже доступно через миграции.
Сначала создайте новую таблицу базы данных и определите ее соединение в файле .env
.
DB_HOST=localhost
DB_DATABASE=name
DB_USERNAME=root
DB_PASSWORD=xxxxxxx
Спусковой миграция с помощью следующей команды:
php artisan migrate
Поскольку я использую MAMP, я получил эту ошибку при попытке переноса.
[PDOException]
SQLSTATE [HY000] [2002] Нет такого файла или каталога
Решение было add the unix_socket
key with a value of the path that the mysql.sock resides in MAMP.
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',
],
Настройка сервера SMTP
Laravel 5.1 по умолчанию mailtrap.io. В первый раз я попробовал, и на самом деле это довольно просто! Первый шаг - setup mailtrap.io account.
Update .env файл с настройками SMTP (при условии, после регистрации)
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=xxxxxx
MAIL_PASSWORD=xxxxxxx
MAIL_ENCRYPTION=null
Обновление от адреса в конфигурации/mail.php файла.
'from' => ['address' => '[email protected]', 'name' => 'test'],
Создать Dashboard
Добавить приборную панель маршрутов
Route::get('dashboard', 'Dash\[email protected]');
Добавить контроллеры панели мониторинга app/Http/Controllers/Dash/DashboardController.php
<?php
namespace App\Http\Dash\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class DashboardController extends Controller
{
public function home(Request $request)
{
return view('dashboard/home');
}
}
Обратите внимание на использование use App\Http\Controllers\Controller;
. Это важно, поскольку мы использовали другое пространство имен для нашей информационной панели.
И вид на resources/views/dashboard/home.blade.php
:
@extends('app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-10 col-md-offset-1">
<div class="panel panel-default">
<div class="panel-heading">Dashboard</div>
<div class="panel-body">
You are logged in!
</div>
</div>
</div>
</div>
</div>
@endsection
Update Войти перенаправляет:
- Update
app/Http/Middleware/RedirectIfAuthenticated
с:
return redirect('/dashboard');
Добавить в корзину Auth/PasswordController.php
и Auth/AuthController.php
.
protected $redirectTo = '/dashboard';
Аутентифицировать Dashboard
Чтобы ограничить доступ к панели управления, чтобы только те, которые вошли в систему, мы можем ддд следующие к контроллеру Dashboard
public function __construct()
{
$this->middleware('auth');
}
Помимо документации как указано на Марти Томас, вы также можете попытаться использовать это package для автомостей.
- 1. Q: Laravel 5.1 Аутентификация
- 2. Аутентифицированный пользовательский идентификатор Laravel 5.1
- 3. Как добавить дополнительное условие в аутентификацию laravel?
- 4. Как добавить привести к Laravel 5.1
- 5. Настроить аутентификацию в Laravel
- 6. Можете ли вы реплицировать MySQL 5.1 master на 5.0 slaves?
- 7. Можете ли вы добавить класс/id в сеанс в laravel?
- 8. Laravel 5.1: как использовать oauth2-server-laravel?
- 9. Выезд с Laravel 5.1
- 10. CMS на основе Laravel 5.1
- 11. AngularJs Вы можете добавить ответ
- 12. Laravel 5.1 загрузить на хост
- 13. Laravel 5.1 добавить фото с формой
- 14. Как вы можете добавить две фракции?
- 15. laravel как удалить аутентификацию предоставить laravel
- 16. Как вы можете заказать Laravel Builder по его индивидуальным отношениям?
- 17. Ошибка хранения Laravel 5.1
- 18. Laravel 5.1 Форма запроса проверки
- 19. Можете ли вы использовать аутентификацию Google для аутентификации?
- 20. Как насчитать форму запроса на Laravel 5.1?
- 21. Как разместить Laravel 5.1 на сервере
- 22. Как настроить Laravel 5.1 на Openshift?
- 23. Можете ли вы запросить массив? Laravel 5.2
- 24. Laravel 5 - Добавить пользовательскую функцию Helper в Laravel 5.1 Класс
- 25. Laravel 5.1 - как отправить через прокси?
- 26. Laravel 5.1 Группы маршрутов
- 27. Можете ли вы использовать CFUserNotification с IOS 5.1
- 28. Можете ли вы предоставить аутентификацию в рамках Play?
- 29. Можете ли вы пройти аутентификацию с помощью Passport без перенаправления?
- 30. Laravel 5.1 посевной столбец
Я .. Я тоже попробовал этот пакет. Я просто контролер и люблю точно знать, что происходит, и держите контроллеры/представления все организованными в одном и том же месте. Но пакет работает очень хорошо. –