推荐答案
// www.javascriptcn.com code example
wx.login({
success(res) {
if (res.code) {
// 获取到登录凭证 code
console.log('登录凭证 code:', res.code);
// 可以将 code 发送到服务器,用于换取 openid 和 session_key
} else {
console.log('登录失败!', res.errMsg);
}
},
fail(err) {
console.log('登录接口调用失败', err);
}
});本题详细解读
wx.login 的作用
wx.login 是微信小程序提供的 API,用于获取用户的登录凭证 code。这个 code 是临时的,有效期通常为 5 分钟。开发者可以将这个 code 发送到自己的服务器,服务器再通过微信的接口(如 code2Session)用 code 换取用户的 openid 和 session_key。
参数说明
success: 登录成功的回调函数,返回一个包含code的对象。res.code: 登录凭证code,用于换取openid和session_key。res.errMsg: 如果登录失败,返回的错误信息。
fail: 登录接口调用失败的回调函数,返回错误信息。
使用场景
- 用户登录:通过
wx.login获取code,然后发送到服务器进行登录验证。 - 获取用户信息:结合
wx.getUserInfo获取用户的详细信息。
注意事项
code的有效期较短,通常为 5 分钟,因此需要在获取后尽快发送到服务器。wx.login不会弹出授权窗口,用户无感知。- 如果需要获取用户的敏感信息(如手机号、地址等),还需要结合
wx.getUserInfo或其他相关 API。
示例代码
// www.javascriptcn.com code example
wx.login({
success(res) {
if (res.code) {
// 将 code 发送到服务器
wx.request({
url: 'https://your-server.com/login',
method: 'POST',
data: {
code: res.code
},
success(response) {
console.log('服务器返回的数据:', response.data);
},
fail(err) {
console.log('请求服务器失败', err);
}
});
} else {
console.log('登录失败!', res.errMsg);
}
},
fail(err) {
console.log('登录接口调用失败', err);
}
});在这个示例中,wx.login 获取到 code 后,通过 wx.request 将 code 发送到服务器,服务器再通过微信的接口换取 openid 和 session_key。