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 : 433
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