Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Всем привет. Начал изучать Laravel, очень занятный фреймворк. Поставил стандартный Auth который идёт из коробки. Вопрос в следующем. В MODX Revo по умолчанию пароли юзеров хешируются в PBKDF2, а в Laravel 5.3 из коробки Auth хеширует пароли в bcrypt. Подскажите можно ли как-то конвертнуть пароли из одной системы шифрования в другую без потерь? Запасной вариант, если каких-то наработок нет, можно ли хешировать пароли в PBKDF2 и в загруженной таблице юзеров с MODX пароли оставить как есть и чтобы авторизация с регистрацией работала с PBKDF2?
Т.к. у вас уже есть база с паролями в виде PBKDF2, имеет смысл изменить способ шифрования в в вашем ларавел-приложении, чтобы он их шифровал также в PBKDF2
Вот две реализации шифрования PBKDF2
https://packagist.org/packages/vjroby/laravel-pbkdf2
https://packagist.org/packages/gponster/laravel-pbkdf2
Сам не проверял, извини.
В самом приложении надо будет поменять код создания записи в бд (по дефолту, кажется, в AuthController->create)
плюс сделать свой трейт, как реализацию Authenticatable, где введенный при логировании пароль будет шифроваться через PBKDF2 и сравниваться со строкой в БД
Ира, вместо создания нового объекта и его сохранения
$post = new Post;
$post->title = $title;
$post->body = $body;
$post->save();
используйте лучше метод "create", он исключает возможность неверного заполнения полей и считатется хорошей практикой
$post = Post::create([
'title' => $title,
'body' => $body,
]);
Чтобы у каждой страницы был свой татйл, можно
1. на каждой странице указывать его явно. Передавать из контроллера как свойство или "зашивать" тайтл в темплейте (шаблоне). Это плохой вариант
2. Сделать шаблон-лэйаут (blade-template layout) где прописать примерно следующее
<html lang="en">
<head>
@section('head')
<title>@yield('title') - Timers Project</title>
<link rel="stylesheet" href="{{ asset('bootstrap-3.3.6-dist/css/bootstrap.min.css') }}">
<script src="{{ asset('js/jquery-1.11.2.min.js') }}"></script>
@show
Главное здесь - запись @yield('title')
это означает что тайтл можно менять на любой странице\шаблон, к-ая будет наследовать этот лэйаут
Далее, делаем шаблон конкретной страницы, наследуемся от этого лэйаута и указываем тот тайтл, к-ый надо
@extends('layouts.app')
@section('title', 'Work - Single Orders')
Эти 2 строки будут у вас на каждой странице, где вы захотите поменять тайтл
Надеюсь понятно объяснил
Здесь на сайте в документации можно почитать об этом в разделе шаблонов и blade-шаблонов
https://laravel.ru/docs/v5/blade