Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » 5.1 кастомная валидация » 21.08.2019 19:17:04

ru

https://stackoverflow.com/questions/284 … -laravel-5 тут нашел решение
но теперь вопрос- как мне вывести в сообщения об ошибке фразу - пароль содержит запрещенное слово $word, где $word это слово из списка запрещенных слов?
также как проверить что пароль не содержит логин? как передать логин в проверку?

#2 Laravel 5.x » 5.1 кастомная валидация » 21.08.2019 16:07:26

ru
Ответов: 1

версия ларавел 5.1
в проекте используется валидация через app/Http/Requests

public function rules()
    {
       return [
            'name' => 'min:3|max:128|plainText',
            'lastname' => 'min:3|max:128|plainText',
            'email' => 'unique:users,email,' . $user_id . '|email',
            'login' => 'required|min:3|max:64|plainText|unique:users,login,',
            'password' => [
                'confirmed',
                'min:8',
                'max:64',
                'regex:/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/',
                function ($attribute, $value, $parameters)
                {
                    foreach ($this->stopWords as $word) {
                        if (strpos($value, $word) !== false) {
                            //$this->word = $word;
                            
                            $fail($attribute.' is invalid.');
                        }
                    }

                    //return false;
                }

            ]
		
    }

как мне добавить свое правило валидации для поля password?
перерыл весь интернет
или советуют создать свой rule, которого нету в классах
или делать через Validator::extend, при этом extend тоже нету
есть простое решение через анонимную ф-ю в этом чудо ларавел?

#3 Re: Laravel 5.x » установка куки XSRF-TOKEN httpOnly » 16.08.2019 19:25:38

ru

я всегда считал что параметр httponly обозначает что кука будет доступна только по http протоколу, включая https, и не будет доступна через скрипты
плюс хром в вкладке кукис отображает галочку  httponly без уточнения http или https

#6 Laravel 5.x » установка куки XSRF-TOKEN httpOnly » 12.08.2019 13:55:28

ru
Ответов: 9

клиент хочет чтобы все куки были httpOnly
счас в проекте 2 куки XSRF-TOKEN и laravel_session
так вот laravel_session установлена как httpOnly, а XSRF-TOKEN нет
полез в исходник и нашел такой метод

vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php

protected function addCookieToResponse($request, $response)
    {
        $config = config('session');

        $response->headers->setCookie(
            new Cookie(
                'XSRF-TOKEN', $request->session()->token(), time() + 60 * 120,
                $config['path'], $config['domain'], $config['secure'], false
            )
        );

        return $response;
    }

получается намеренно убрали httpOnly без возможности регулировки?
пришлось переопределить метод

protected function addCookieToResponse($request, $response)
    {
        $config = config('session');

        $response->headers->setCookie(
            new Cookie(
                'XSRF-TOKEN', $request->session()->token(), time() + 60 * 120,
                $config['path'], $config['domain'], $config['secure']
            )
        );

        return $response;
    }

насколько такое решение правильное?

Подвал раздела