我们可以在微信官方文档中,找到小程序登录的时序图。如下图所示:
注意事项:
后端的相关代码:
public class WxLogin {
//向微信服务器去请求,根据前台小程序传来的code获取openid
public static void jsCode(String loginCode){
//请求微信服务器的参数
//appid小程序唯一标识,secret小程序的app secret,js_code登录时获取的code,grant_type填写为authorization_code
String params="appid="+ "自己的小程序id"
+"&secret="+ “自己小程序的密钥”
+"&js_code="+“小程序传来的code值”
+"&grant_type="+GRANT_TYPE_AUTHORIZATION_CODE;
//发送请求
String result=HttpRequest.sendGet("https://api.weixin.qq.com/sns/jscode2session",params);
}
}
小程序端的关键代码:
// index.js
// 获取应用实例
const app = getApp()
var httpUtils = require('../../utils/http.js')
Page({
data: {
},
onLoad: function (param) {
},
//登录
doLogin: function (e) {
//API接口
wx.getUserProfile({
desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res) => {
console.log(res.userInfo);
wx.switchTab({
url: '../indexsy/indexsy',
})
}
}),
wx.login({
success: (res) => {
//获取登录的临时凭证
var code = res.code;
console.log("小程序的code"+code);
//调用后端,获取微信的session_key和secret
if (res.code) {
//发起网络请求,用于注册或获取用户信息
wx.showToast({
title: '成功登录小程序',
duration: 10000
});
console.log(55);
httpUtils.postReq('user/getUserByCode', {
code: res.code
}, function (res) {
console.log("登录成功");
})
} else {
return
}
}
})
}
})
相关的截图:



