More

    [yii2] Comment crypter / décrypter facilement les paramètres d’URL

    Si vous souhaitez crypter les URL paramètres comme ceci :

    https://frontend.bardimin/country/view?id=1

    Devenir comme ça :

    https://frontend.bardimin/country/view?MN13pDvH/4+94LNY/NXJiDM4YTMwZjc5ZjRmMzA0Y2RjMDRmMjUyYmI5M2Q4MmE2ZDE4ODNkOTdkNzc1MGI3Yzg5OTE4NzVlMzBlMjZmNzkXVSsTf7d1y5a26LK8IcsggrWQi+hW4b0xIFKnIZowSTXZVxu+t2lGyx/skNKFo6g=

    Vous pouvez le faire facilement dans yii2. Voici les étapes à suivre pour crypter/décrypter les paramètres d’une URL, comme dans l’exemple ci-dessus :

    1. Créer une classe UrlRule

    La première chose à faire est de créer un fichier UrlRule.php dans le répertoire« common/helpers »si vous utilisez yii2 advanced ou dans le répertoire« helpers » si vous utilisez yii2 basic. Copiez/collez ensuite le code suivant :

    <?php
    
    namespace commonhelpers;
    
    use yii;
    
    class UrlRule implements yiiwebUrlRuleInterface
    {
    
        public  $jklKey = '-YD07LTTJdSVB6oThcC7l60KeZTUXcNA'; //change if necessary
    
        public function createUrl($manager, $route, $params)
        {
            if ($params!==null) {
                $paramString = serialize($params);
                $paramStringEncoded = $paramString ? base64_encode(Yii::$app->security->encryptByKey($paramString,$this->jklKey,null)) : '';
            }
            return empty ($params)? $route: $route. '?' . $paramStringEncoded;
        }
    
    public function parseRequest($manager, $request)
        {
            $pathInfo = $request->getPathInfo();
            $queryString=$request->getQueryString();
            if(!empty($queryString)) {
                $params=unserialize(Yii::$app->security->decryptByKey(base64_decode($queryString),$this->jklKey,null));
                foreach ($params as $key => $value) {
                    $paramsQuery = [$key] $value;
                }
                [$pathInfo,$paramsQuery]return;
            }
            return false;
        }
    
    }

    2. Modifier le fichier config/main.php

    Ensuite, modifiez votre fichier config/play.php comme suit :

        .............
    	.............
    	
    'components' = > [
    		.............
    		.............
    		.............
    
    'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'enableStrictParsing' => false,
                'rules' = > [
                    ['class' => 'commonhelpersUrlRule'],
                ],
            ],
    		.............
    		.............
    	]
    	.............
    	.............

    Dernières articles