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

NodeJS Discussion :

Lier mon API avec le front [login / register]


Sujet :

NodeJS

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    janvier 2012
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2012
    Messages : 282
    Points : 54
    Points
    54
    Par défaut Lier mon API avec le front [login / register]
    Bonjour,
    j'ai besoin de vous pleaaaase sur un projet où j'intériens en tant que Front, j'ai eu l'API qui a été créé par le dev-backend sur l'authentification (login, register) que ce soit avec son un mail ou par Google/Facebook.
    Je n'ai pas su comment lier ses Routes avec le mon front, c'est à dire appeler par exemple la funciton Connexion (ci-dessous) sur mon composent, cette dérnière est assez complèxe et remplie de conditions, j'ai beau cherché sur Net, je n'ai pas pu le faire !!

    voilà le code dans l'API pour la Connexion :

    Code : 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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    /**
     * POST /api/connexion 
     */
    exports.connnexion = (req, res) => {
        try{
            var email = req.body.email;
            var password = req.body.password;
            //get email and password
            if( ( (typeof email !== 'undefined') || (email === '') ) || 
            ( (typeof password !== 'undefined') || ( password === '') ) ){
                //check email if Exist in DB
                Account.find({email : email},function(err, account){
                    if (err){
                        resultats = {
                            "success": false,
                            "message": "Error, check email/password",
                            "result": ''
                        }
                        res.json(resultats);
                    }
                    else{
                        if((account[0].google.id)===undefined && (account[0].facebook.id)===undefined){//dont have google & facebook account
                            console.log('connexion classique');
                            if(account.length){
                                //if exist,
                                //get password of this account
                                if(bcrypt.compareSync(password,account[0].password)){//if password ok
                                    //create new token
                                    try{
                                        jwt.sign({
                                            account
                                        },
                                        'secretKey',
                                        (err,token) => {
                                            if(err){
                                                resultats = {
                                                    "success": false,
                                                    "message": 'Error : '+ err,
                                                    "result": ''
                                                }
                                                res.json(resultats);
                                            }
                                            resultats = {
                                                "success": true,
                                                "message": "SUCCESS",
                                                "result": token
                                            }
                                            res.json(resultats); 
                                        }); 
                                    }catch(e){
                                        resultats = {
                                            "success": false,
                                            "message": 'Error : '+ e,
                                            "result": ''
                                        }
                                        res.json(resultats);
                                    }
                                }
                                else{
                                    resultats = {
                                        "success": false,
                                        "message": "Error, check email/password",
                                        "result": ''
                                    }
                                    res.json(resultats);
                                }
                                
                            }
                            else{
                                resultats = {
                                    "success": false,
                                    "message": 'Error : check email/password',
                                    "result": ''
                                }
                                res.json(resultats);
                            }
                        }
                        else{
                            console.log('impossible de se connecter(google ou facebook)');
                            resultats = {
                                "success": false,
                                "message": "Error, check email/password",
                                "result": ''
                            }
                            res.json(resultats);
                        }
                        
                    }
                });
            }
            else{
                resultats = {
                    "success": false,
                    "message": 'Error : check email/password',
                    "result": ''
                }
                res.json(resultats); 
            }
        }catch(e){
            resultats = {
                "success": false,
                "message": 'Error : '+ e,
                "result": ''
            }
            res.json(resultats); 
        }
    }
    J'ai fait un truc de ce genre dans mon composent mais cela ne donne rien, il faut que l'user se connecte et soit redirigé vers ('http://localhost:3000/gerercomptes'); par exemple:

    Code : 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
        constructor (props) {
            super(props);
            this.state = {
                // name: "",
              cnx_mail: '',
              cnx_pwd: '',
              sub_mail: '',
              sub_pwd: '',
              errors: {},
     
              formErrors: {cnx_mail: '', cnx_pwd: '', sub_mail: '', sub_pwd: '' },
              emailValid: false,
              passwordValid: false,
              formValid: false
            }
             this.handleUserInput = this.handleUserInput.bind(this);
            this.handleSubmit = this.handleSubmit.bind(this);
          }
     handleSubmit(event) {
            event.preventDefault();
            fetch(`/api/connexion`)
                .then(resultats => resultats.json())
                .then(state => this.setState(state));
                // this.props.history.push('http://localhost:3000/gerercomptes');
     
        }
     
          handleUserInput = (e) => {
            const name = e.target.name;
            const value = e.target.value;
            this.setState({[name]: value},
                () => { this.validateField(name, value) });
            // this.setState({ [e.target.id]: e.target.value });
     
          }
    sur POSTMAN, je tape l'email et mdp, après je reçois un Token que j'utilise pour d'autre function comme affichier la liste des user..(image ci-dessous)
    Nom : Capture d’écran de 2019-10-11 01-13-03.png
Affichages : 51
Taille : 145,3 Ko

    SVP si quelqu'un pourrait m'aider cela fait plusieurs jours que je suis bloquée sur ce projet

    Merci d'avance

  2. #2
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    janvier 2012
    Messages
    282
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2012
    Messages : 282
    Points : 54
    Points
    54
    Par défaut
    Wow! c'est toujours comme dans ce forum, personne ne répond !!

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2016
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Bonjour Kagami !

    Je vais essayer de t'aider mais je suis pas sur d'avoir bien saisi.

    Tu cherches depuis le front a envoyer ses informations à ton serveur afin de pouvoir récupérer ton token ?

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2016
    Messages : 3
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Kagami Voir le message
    Wow! c'est toujours comme dans ce forum, personne ne répond !!
    Effectivement, personne ne répond

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/04/2016, 11h07
  2. recevoir un mail à chaque fois qu'une personne entre dans mon site avec son login
    Par soleilgym64 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 14/08/2012, 11h45
  3. Comment faire pour lier une DLL avec mon application ?
    Par therev123 dans le forum wxWidgets
    Réponses: 1
    Dernier message: 25/07/2012, 22h50
  4. Réponses: 2
    Dernier message: 18/02/2009, 12h11
  5. Help : Pb d'installation avec pgsql
    Par gueeyom dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 03/06/2004, 18h54

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