Connexion à l'API du programme WeChat Mini
wx.login(OBJECT)
Appelez l'interface pour obtenir les identifiants de connexion (code), puis échangez-les contre les informations sur l'état de connexion de l'utilisateur, y compris l'identifiant unique (openid) de l'utilisateur et la clé de session ( session_key) pour cette connexion. Le cryptage et le déchiffrement des communications des données utilisateur reposent sur des clés de session.
Description du paramètre OBJECT :
Description du paramètre de retour de succès :
Exemple de code :
//app.js App({ onLaunch: function() { wx.login({ success: function(res) { if (res.code) { //发起网络请求 wx.request({ url: 'https://test.com/onLogin', data: { code: res.code } }) } else { console.log('获取用户登录态失败!' + res.errMsg) } } }); } })
code en échange de session_key
Ceci est un HTTPS interface, le serveur de développeur utilise le code d'identification de connexion pour obtenir la session_key et l'openid. Parmi eux, session_key est la clé de la signature cryptée des données utilisateur. Pour la sécurité de votre propre application, session_key ne doit pas être transmise sur le réseau.
Adresse d'interface :
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
Paramètres de requête :
Paramètres de retour :
Paramètre | Description |
---|---|
openid | Identifiant unique de l'utilisateur |
session_key | clé de session |
Instructions de retour :
//正常返回的JSON数据包 { "openid": "OPENID", "session_key": "SESSIONKEY" } //错误时返回JSON数据包(示例为Code无效) { "errcode": 40029, "errmsg": "invalid code" }
Maintenance du statut de connexion
Après avoir obtenu le statut de connexion de l'utilisateur via wx.login()
, le statut de connexion doit être maintenu. Les développeurs doivent noter qu'ils ne doivent pas utiliser directement des champs tels que session_key et openid comme identifiants d'utilisateur ou identifiants de session, mais doivent plutôt distribuer eux-mêmes un état de connexion de session (veuillez vous référer au diagramme de séquence de connexion). Pour les sessions générées par les développeurs eux-mêmes, leur sécurité doit être assurée et de longs délais d'expiration ne doivent pas être définis. Une fois la session envoyée au client du mini-programme, elle peut être stockée en mémoire pour une communication ultérieure. wx.login()
获取到用户登录态之后,需要维护登录态。开发者要注意不应该直接把 session_key、openid 等字段作为用户的标识或者 session 的标识,而应该自己派发一个 session 登录态(请参考登录时序图)。对于开发者自己生成的 session,应该保证其安全性且不应该设置较长的过期时间。session 派发到小程序客户端之后,可将其存储在 storage ,用于后续通信使用。
登录时序图
wx.checkSession(OBJECT)
检查登陆态是否过期
示例代码:
wx.checkSession({ success: function(){ //登录态未过期 }, fail: function(){ //登录态过期 wx.login() } })
Bug & Tip
bug
:iOS/Android
6.3.30
Diagramme de séquence de connexion
wx.checkSession(OBJECT)🎜
🎜 Vérifiez si le statut de connexion a expiré🎜🎜🎜🎜🎜🎜🎜Exemple de code : 🎜🎜rrreee🎜
Bug et astuce
< ol>
bug
: iOS/Android
6.3.30
, une exception se produira lors de l'appel de wx.login dans App.onLaunch 🎜🎜