Autour de Laravel

Utiliser laravel sha1 au lieu de bcrypt

  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    37

    Bonjour à vous, j'ai créé une nouvelle application en utilisant le framework laravel et j'aimerais que mes utilisateurs qui avaient déjà accès à l'ancienne version de mon application puissent se connecter à la plateforme via leurs informations de connexion déjà enregistrées dans l'ancienne bd. Le problème est que lorsque j'importe les données de mes utilisateurs dans la bd de laravel les mots de passe de ces utilisateurs ne sont pas reconnus car ils étaient cryptés avec l'algorithme sha1. J'espère avoir donner assez d'informations. Merci de me venir en aide.

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2548

    Salut,

    Peut-être la solution ici.

  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    37

    @bestmomo merci pour la solution mais je ne sais pas pourquoi elle ne fonctionne pas chez moi. Voici une capture l'erreur générer. Cette erreur survient lorsque je comment la ligne Illuminate\Hashing\HashServiceProvider::class, comme sur la deuxième capture.
    "Class 'App\Providers\SHAHasher' not found"

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2548

    Salut

    S'il trouve pas la classe c'est soit :

    • il y a un manque de référencement avec un use
    • l'espace de nom est faux
    • le chargement des classes ne s'est pas mis à jour : faire un composer dumpautoload
  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    37

    Salut, je crois avoir respecté toutes les directives mais j'ai toujours une erreur:
    "Class App\Libraries\ShaHash\SHAHasher contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Illuminate\Contracts\Hashing\Hasher::info) ◀"

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2548

    En regardant le contrat Illuminate\Contracts\Hashing\Hasher on trouve effectivement une fonction info qui n'a pas été implémentée dans l'exemple de code. Essaie comme ça :

    <?php
    namespace App\Libraries\ShaHash;
    use Illuminate\Contracts\Hashing\Hasher as HasherContract;
    use Illuminate\Hashing\AbstractHasher;

    class SHAHasher extends AbstractHasher implements HasherContract {
  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    37

    Merci beaucoup, je suis un jeune développeur camerounais et je me suis lancé dans laravel il y a quelques temps grâce à vos cours. Là je vois que vous êtes vraiment très disponible. Encore merci.

  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    37

    @bestmomo
    Le problème a été résolu mon application fonctionne très bien en local mais lorsque je la mets en ligne j'ai une erreur.
    <?php

    namespace App\Providers;

    use Illuminate\Hashing\HashServiceProvider;
    use App\Libraries\SHAHash\SHAHasher as SHAHasher;

    class ShaHashServiceProvider extends HashServiceProvider{
    public function register()
    {
    $this->app->singleton('hash', function () {
    return new SHAHasher;
    });
    }
    }
    Arguments
    "Class 'App\Libraries\SHAHash\SHAHasher' not found"!

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2548

    Lance un composer dumpautoload pour régénérer l'autoload.

  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    37

    Co,,ent je vais le faire pour le lancer en ligne?

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2548

    Tu n'as pas composer sur le serveur ? Tu peux toujours envoyer la version PHAR.

  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    37

    Je viens de refaire composer dumpautoload en local puis j'ai renvoyé sur le serveur mais ça ne fonctionne toujours pas. En parlant de PHAR je ne comprends pas ce que tu me demandes de faire.

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2548

    Quand on a pas composer sur le serveur on peut envoyer en FTP composer.phar et l'utiliser.

  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    37

    Je t'explique comment j'ai procédé, j'ai compressé le dossier contenant le contenu du site puis je l'ai envoyé sur le serveur vi le gestionnaire de fichiers de mon hebergeur (ça ne fonctionne pas). Jai même fait le composer dumpautoload jusque là rien. Je me demande donc si il ne faut envoyer les fichier sur le serveur via ftp et tester.

  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    37

    Erreur même après composer dumpautoload

    <?php

    namespace App\Providers;

    use Illuminate\Hashing\HashServiceProvider;
    use App\Libraries\SHAHash\SHAHasher as SHAHasher;

    class ShaHashServiceProvider extends HashServiceProvider{
    public function register()
    {
    $this->app->singleton('hash', function () {
    return new SHAHasher;
    });
    }
    }
    Arguments
    "Class 'App\Libraries\SHAHash\SHAHasher' not found"

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2548

    C'est la même version de PHP ?

  • Avatar de paulinPriso
    Membre depuis :
    27/06/2018
    Messages :
    37

    Problème résolu. Merci

Vous ne pouvez pas répondre à ce sujet.