HTML5 打包 APP 时,为了方便用户登录,经常会使用微信登录功能。微信登录是基于微信开放平台的网站应用开发和移动应用开发,通过微信认证进行用户身份识别和获取用户信息,实现用户一次授权,多端使用的登录方式。下面将详细介绍如何在 H5 打包 APP 中使用微信登录功能。
一、准备工作
1. 注册微信开放平台账号:在微信开放平台注册账号,进入“管理中心”-“应用开发”,创建一个微信应用,获得 AppID 和 AppSecret。AppID 为开发者帐号下的应用唯一标识,AppSecret 是应用的密码,开发者需妥善保管。
2. 在 H5 中引入微信 JS-SDK:通过 script 标签引进微信 JS-SDK,JS-SDK 是对微信开放平台的一种封装,开发者可以通过 JS-SDK 调用微信的各种功能接口。
二、调用微信登录接口
通过微信 JS-SDK 调用微信登录接口,获取用户认证后的 access_token 和 openid。
```
// 引入微信 JS-SDK
// 通过 config 接口注入权限配置
wx.config({
debug: false,
appId: 'AppID',
timestamp: '',
nonceStr: '',
signature: '',
jsApiList: [
'login'
]
});
// 通过 ready 接口处理成功验证
wx.ready(function () {
// 在这里调用微信登录接口
wx.login({
success: function (res) {
// 获取 access_token 和 openid
var code = res.code; // code为用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用 auth.code2Session,使用 code 换取 openid 和 session_key 等信息。
}
});
});
```
三、将 access_token 和 openid 发送到后台,获取用户信息
使用第二步中获得的 access_token 和 openid 去后台请求获取用户信息。
1. 通过 access_token 和 openid 获取用户授权信息。
请求地址:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
请求参数说明:
| 参数 | 是否必须 | 说明 |
|--------------|----------|-----------------------------|
| access_token | 是 | 接口调用凭证 |
| openid | 是 | 用户唯一标识 |
| lang | 否 | 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语。默认为 zh_CN。 |
2. 后台返回用户信息,存储到本地缓存。
{
"openid": "OPENID",
"nickname": "NICKNAME",
"sex": 1,
"province": "PROVINCE",
"city": "CITY",
"country": "COUNTRY",
"headimgurl": "http://wx.qlogo.cn/mmopen/1/0vxAs7szKId2GQ8OaRfKKYWXm2xejiaC5yTo1EVqRicQYOiaMcUcwkyRicAGOWsfOSXBOATW41JpFcrBciaF7tqXjfw/0",
"privilege": [ "PRIVILEGE1", "PRIVILEGE2" ],
"unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
}
四、使用本地缓存中的用户信息进行跳转
```
function wxLogin() {
wx.login({
success: function (res) {
// 执行后台登录,并存储用户信息到本地缓存
wx.request({
url: 'http://localhost:5000/wechat/login',
method: 'POST',
data: {
code: res.code
},
success: function (res) {
// 存储用户信息到本地缓存
wx.setStorageSync('userInfo', res.data);
// 跳转到主页
wx.reLaunch({
url: '/pages/index/index'
});
}
});
}
});
}
```
以上就是在 H5 打包 APP 中使用微信登录功能的原理和详细介绍,希望能够帮助到大家。