Maison  >  Article  >  Applet WeChat  >  Comment gérer les séances dans les mini programmes ?

Comment gérer les séances dans les mini programmes ?

青灯夜游
青灯夜游avant
2020-05-16 18:01:023130parcourir

Comment gérer les séances en mini programmes ? L'article suivant vous présentera un tutoriel sur la gestion de session pour le développement d'applets WeChat. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Comment gérer les séances dans les mini programmes ?

Dans le développement de l'applet WeChat, chaque requête initiée par wx.request() est une session différente pour le serveur, et l'applet WeChat ne ramènera pas les informations de session au serveur, c'est-à-dire correspondant à différentes sessions sur le serveur. Puisque la session est utilisée dans le projet pour enregistrer les informations de l'utilisateur, les requêtes ultérieures équivalent à ne pas se connecter.

Notez que la session ici n'est pas la session maintenue par le mini programme via la méthode wx.login(), mais notre propre session côté serveur.

Dans des circonstances normales, lorsque le client initie une requête au serveur, les informations de session sont stockées dans le cookie et ramenées au serveur sous la forme d'un en-tête de requête, et les informations spécifiques dans l'en-tête de requête est l'identifiant de session. Comme le montre la figure ci-dessous

Comment gérer les séances dans les mini programmes ?

Ce qui est marqué en rouge est que nous devons transporter l'en-tête de requête renvoyé au serveur lors de la demande, donc ce dont nous avons besoin, c'est de la valeur de JESSIONID. Heureusement, l'applet WeChat prend également en charge les en-têtes de requête.

Solution :

1 Lorsque l'utilisateur se connecte, le serveur renvoie l'ID de session de l'utilisateur.

2. L'applet enregistre le sessionId et porte le sessionId dans l'en-tête de la requête dans chaque requête ultérieure

Code clé du serveur :

Pour obtenir le sessionId, vous pouvez facilement l'obtenir tant que vous obtenez l'objet de requête

Sting sessionId = request.getSession().getId();

Renvoyer le sessionId

...//登录时的业务代码
response.getWriter.write(sessionId);//把sessionId返回给前台

Après vous être connecté à l'applet, stockez le sessionId dans le global variable, app.js C'est un bon endroit pour stocker des variables globales.

...//登录后的逻辑处理
getApp().globalData.header.Cookie = \'JSESSIONID=\' + _data.sessionId;

Le code dans app.js

globalData:{
header:{\'Cookie\': \'\'} //这里还可以加入其它需要的请求头,比如\'x-requested-with\': \'XMLHttpRequest\'表示ajax提交,微信的请求时不会带上这个的
},

apporte le sessionId lors de la demande de l'applet

var header = getApp().globalData.header; //获取app.js中的请求头
wx.request({
url: localhost:8080/xx/xx,
header: header, //请求时带上这个请求头
success:function(res){
  }
}

Il est recommandé d'encapsuler vos propres informations de demande et de traiter une logique commune.

Recommandé : "Tutoriel de développement de mini-programmes"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer