Log Masuk API Program Mini WeChat
wx.login(OBJEK)
Panggil antara muka untuk mendapatkan kelayakan log masuk (kod) dan kemudian tukarkannya dengan maklumat status log masuk pengguna, termasuk pengecam unik pengguna (openid) dan kunci sesi session_key) untuk log masuk ini . Penyulitan dan penyahsulitan komunikasi data pengguna bergantung pada kunci sesi.
OBJEK perihalan parameter:
kejayaan perihalan parameter pengembalian:
kod:
kod:kod kelayakan log masuk untuk mendapatkan session_key dan openid. Antaranya, session_key ialah kunci untuk tandatangan disulitkan data pengguna. Untuk keselamatan aplikasi anda sendiri, session_key tidak boleh dihantar pada rangkaian.
Alamat antara muka:
//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) } } }); } })
Parameter permintaan:
Parameter Penerangan:
openid | Pengecam unik pengguna |
session_key | session key |
Arahan pengembalian:
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
Penyelenggaraan status log masuk
Selepas mendapatkan status log masuk pengguna melalui wx.login()
, status log masuk perlu dikekalkan. Pembangun harus ambil perhatian bahawa mereka tidak boleh terus menggunakan medan seperti session_key dan openid sebagai pengecam pengguna atau pengecam sesi Sebaliknya, mereka harus menghantar keadaan log masuk sesi dengan sendirinya (sila rujuk rajah jujukan log masuk). Untuk sesi yang dijana oleh pembangun sendiri, keselamatannya harus dipastikan dan masa tamat tempoh yang lama tidak harus ditetapkan. Selepas sesi dihantar kepada klien program mini, ia boleh disimpan dalam storan untuk komunikasi seterusnya. wx.login()
获取到用户登录态之后,需要维护登录态。开发者要注意不应该直接把 session_key、openid 等字段作为用户的标识或者 session 的标识,而应该自己派发一个 session 登录态(请参考登录时序图)。对于开发者自己生成的 session,应该保证其安全性且不应该设置较长的过期时间。session 派发到小程序客户端之后,可将其存储在 storage ,用于后续通信使用。
登录时序图
wx.checkSession(OBJECT)
检查登陆态是否过期
示例代码:
//正常返回的JSON数据包 { "openid": "OPENID", "session_key": "SESSIONKEY" } //错误时返回JSON数据包(示例为Code无效) { "errcode": 40029, "errmsg": "invalid code" }
Bug & Tip
bug
:iOS/Android
6.3.30
Rajah Jujukan Log Masuk
wx.checkSession({ success: function(){ //登录态未过期 }, fail: function(){ //登录态过期 wx.login() } })
🎜
Pepijat & Petua
< ol>bug
: iOS/Android
6.3.30
, pengecualian akan berlaku apabila memanggil wx.login dalam App.onLaunch ; 🎜🎜