IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

make: auth pas les mêmes fonctions que dans la doc ?


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 275
    Points : 113
    Points
    113
    Par défaut make: auth pas les mêmes fonctions que dans la doc ?
    Bonjour,

    j'apprends en ce moment à me servir de symfony et en particulier l'authentification !
    Lorsque je fais un make:auth

    je change les chemins dans mes fichiers tiwg et tout fonctionne.
    Mais je voudrais comprendre comment ça marche et je découvre que dans la doc
    il n'y a pas les mêmes fonctions que moi: j'ai authenticate, onAuthenticationSuccess, ...

    il y a eu des changements ?

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 275
    Points : 113
    Points
    113
    Par défaut
    À la limite , j'ai tenté de copier/coller le fichier de la doc mais:
    il y a marqué que les classes AbstractFormLoginAuthenticator, PasswordAuthenticatedInterface etc, sont dépréciées...

    Bon , pour l'instant, je les garde et je fais avec: plus pratique pour suivre les tutos !

    Mais si quelqu'un pouvait m'assurer que rien n'a changé depuis juin 2021 !

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 275
    Points : 113
    Points
    113
    Par défaut
    Du coup, comme je ne peux pas suivre les tutos correctement,
    j'ai finalement gardé le script de base produit par la commande sc make:auth

    Mais je ne sais pas comment tout ça fonctionne !! Aucune explication la-dessus
    Si quelqu'un peut m'expliquer.
    En particulier pour rediriger voici le code que je tente d'utiliser:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    <?php
     
    namespace App\Security;
     
    use Symfony\Component\HttpFoundation\RedirectResponse;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
    use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
    use Symfony\Component\Security\Core\Security;
    use Symfony\Component\Security\Http\Authenticator\AbstractLoginFormAuthenticator;
    use Symfony\Component\Security\Http\Authenticator\Passport\Badge\CsrfTokenBadge;
    use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
    use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\PasswordCredentials;
    use Symfony\Component\Security\Http\Authenticator\Passport\Passport;
    use Symfony\Component\Security\Http\Authenticator\Passport\PassportInterface;
    use Symfony\Component\Security\Http\Util\TargetPathTrait;
     
    class LoginFormAuthenticator extends AbstractLoginFormAuthenticator
    {
        use TargetPathTrait;
     
        public const LOGIN_ROUTE = 'app_login';
     
        private UrlGeneratorInterface $urlGenerator;
     
        public function __construct(UrlGeneratorInterface $urlGenerator)
        {
            $this->urlGenerator = $urlGenerator;
        }
     
        public function authenticate(Request $request): PassportInterface
        {
            $email = $request->request->get('email', '');
     
            $request->getSession()->set(Security::LAST_USERNAME, $email);
     
            return new Passport(
                new UserBadge($email),
                new PasswordCredentials($request->request->get('password', '')),
                [
                    new CsrfTokenBadge('authenticate', $request->get('_csrf_token')),
                ]
            );
        }
     
        public function onAuthenticationSuccess(Request $request, TokenInterface $token, string $firewallName): ?Response
        {
            if ($targetPath = $this->getTargetPath($request->getSession(), $firewallName)) {
                return new RedirectResponse($targetPath);
            }
     
            return new RedirectResponse($this->urlGenerator->generate('post'));
     
            throw new \Exception('TODO: provide a valid redirect inside '.__FILE__);
        }
     
        protected function getLoginUrl(Request $request): string
        {
            return $this->urlGenerator->generate(self::LOGIN_ROUTE);
        }
    }

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/06/2009, 17h29
  2. Réponses: 8
    Dernier message: 03/05/2007, 17h31
  3. Réponses: 9
    Dernier message: 25/04/2007, 15h54
  4. Réponses: 8
    Dernier message: 18/12/2006, 12h36
  5. J'ai pas les infos des objets dans l'éditeur
    Par mister3957 dans le forum MFC
    Réponses: 3
    Dernier message: 20/02/2006, 19h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo