1.小程序登录流程简介
随着小程序的普及,小程序登录已经成为了许多开发者必须掌握的技能。小程序登录流程主要分为以下四个步骤:
1.1 获取用户信息
小程序登录第一步,是获取用户的基本信息。这里的基本信息包括用户的昵称、头像、性别、地区等等。小程序可以通过调用 API:wx.login()和wx.getUserInfo()来实现这一步骤。
其中,wx.login()是调用微信登录接口,获取到用户的临时登录凭证,可以用于后续的接口调用,而wx.getUserInfo()则是用于获取用户信息的接口。
// 调用 wx.login() 接口获取临时登录凭证(code)
wx.login({
success: function(res) {
if (res.code) {
// 成功获取到了临时登录凭证,可通过 HTTP 请求发送到开发者服务器后台换取 openid 和 session_key 等信息
} else {
console.log('获取用户登录态失败!' + res.errMsg)
}
}
})
// 调用 wx.getUserInfo() 接口获取用户信息,需要注意的是需要用户授权方可调用
wx.getUserInfo({
success: function(res) {
var userInfo = res.userInfo
var nickName = userInfo.nickName
var avatarUrl = userInfo.avatarUrl
var gender = userInfo.gender // 性别,0表示未知,1表示男性,2表示女性
var province = userInfo.province
var city = userInfo.city
var country = userInfo.country
}
})
1.2 HTML5原生 客户端凭证
小程序登录第二步,是获取用户的客户端凭证。这里的客户端凭证是 HTML5 原生支持的 localStorage 或者 SessionStorage,用来存储用户登录态的信息,包括token、session key和openid等。
在后续的小程序网络请求中,会将客户端凭证发送到后台服务器,验证用户的身份。需要注意的是,客户端凭证是和用户绑定的,一旦泄露或者丢失,就会导致用户信息的泄漏或者被盗用。
// 总是保持最新的 token
localStorage.setItem('token', 'new_token_value')
// 获取 token 值
var token = localStorage.getItem('token')
1.3 向开发者服务器发起请求并保存session_key
小程序登录第三步,是在客户端通过 HTTP 请求,向开发者服务器发起登录请求,并传递用户的客户端凭证(token)。后台服务器需要验证客户端凭证的合法性,同时也需要将客户端凭证存储到数据库中,以便后续的请求中进行身份验证。
// 向开发者服务器发起请求
wx.request({
url: 'http://example.com/login',
data: {
token: token
},
success: function(res) {
// 将服务器返回的 session_key 存储到本地
localStorage.setItem('session_key', res.data.session_key)
},
fail: function(res) {
console.log('请求登录接口失败!' + res.errMsg)
}
})
1.4 拉取用户openid并存储
小程序登录第四步,是在客户端通过 HTTP 请求,向微信开放平台发起获取用户 openid 的请求,将返回的 openid 存储在客户端,也可以同时存储在后台服务器中,用于后续的接口调用。
// 向微信开放平台发起请求拉取用户 openid
wx.request({
url: 'https://api.weixin.qq.com/sns/jscode2session',
data: {
appid: 'your_appid',
secret: 'your_app_secret',
js_code: js_code,
grant_type: 'authorization_code'
},
success: function(res) {
var openid = res.data.openid
// 将 openid 存储到本地,或者将 openid 上传到后台服务器中存储
localStorage.setItem('openid', openid)
},
fail: function(res) {
console.log('请求 openid 失败!' + res.errMsg)
}
})
2.小程序登录流程注意事项
2.1 客户端凭证的安全性
客户端凭证是小程序登录中的关键信息,必须要注意保护客户端凭证的安全性。在客户端中,可以使用 HTML5 原生支持的 localStorage 或者 SessionStorage 存储客户端凭证,但需要注意这些信息都是可以被 JavaScript 代码读取或者修改的,因此要谨慎使用。
一般来说,开发者需要对客户端凭证进行加密处理,在传输过程中使用 HTTPS 协议或者其他安全协议来确保安全性。
2.2 用户信息的获取需要用户授权
在小程序中,获取用户信息需要用户的明示授权。如果用户没有授权,小程序将无法获取到用户的信息,即便调用了wx.getUserInfo(),也只能获取到用户的匿名身份信息。
因此,在小程序开发中,需要在程序启动时优先判断用户是否已经授权,如果没有授权,则需要引导用户进行授权操作。
3.小结
小程序登录流程是小程序开发的基础技能之一,是构建小程序应用的必要步骤。小程序登录流程主要包括获取用户信息、客户端凭证、向开发者服务器发起请求并保存session_key、拉取用户 openid并存储等步骤。在实际开发中,需要注意客户端凭证的安全性,以及用户信息的获取需要用户授权等问题。