J'utilise node.JS avec le module de requête.Noeud demande comment gérer les sessions
Mon problème est que je dois authentifier l'utilisateur à chaque requête car la session est détruite en dehors du bloc .then((response) => {})
.
Comment est-il possible de sauvegarder la session créée dans une classe pour une utilisation ultérieure?
J'ai tout essayé sans succès.
Voici un ne fonctionne pas le code snippet
login() {
const getLoginUrl = 'https://www.demourl.com/'
const postLoginUrl = 'https://www.demourl.com/account/login/'
rp({
url: getLoginUrl,
jar: this.cookieJar,
method: 'GET'
})
.then((body) => {
var csrftoken = this.cookieJar.getCookies(getLoginUrl)[1].toString().split('=')[1].split(';')[0];
var args = {
url: postLoginUrl,
json: true,
method: 'POST',
data: {
username: this.username,
password: this.password
},
headers: {
'method': 'POST',
'path': '/account/login/',
'cookie': 'csrftoken=' + csrftoken,
},
jar: this.cookieJar,
resolveWithFullResponse: true
}
rp(args)
.then((response) => {
//Here is a valid session
//But how can I use this session in different functions?
console.log('Post demourl.com/account/login success');
})
.catch((error) => {
console.log('Post demourl.com/account/login error: ', error);
});
})
.catch((error) => {
console.log('Get demourl.com error: ', error);
});
}
si vous utilisez express.js, essayez d'utiliser middleware https://expressjs.com/fr/guide/using-middleware.html. Si ce n'est pas le cas, vous pouvez avoir une fonction middle ware avec n'importe quel chemin, qui s'exécuterait pour n'importe quelle requête –