微信小程序开发记录(一)--获取openid
遇到的项目是微信小程序后台,登陆是后台自己的账号验证逻辑,要求将微信和已存在的平台账号关联起来。关于微信小程序的注册和配置,请到微信公众平台查看。这里不进行记录。
通过微信登录凭证code获取openid
获取微信登录凭证code
首先说到登录,微信为了防止黑客获取黑客伪装成任意身份来操作获取任意账户下的数据,所以使用wx.login方法,只要在小程序前端调用wx.login方法就会生成一个带有时效性的凭证,就像是一个会过期的临时身份证一样,在wx.login调用时,会先在微信后台生成一张临时的身份证,其有效时间仅为5分钟。然后把这个临时身份证返回给小程序方,这个临时的身份证我们把它称为微信登录凭证code。如果5分钟内小程序的后台不拿着这个临时身份证来微信后台服务器换取微信用户id的话,那么这个身份证就会被作废,需要再调用wx.login重新生成登录凭证。
在wx.login的success回调中拿到微信登录凭证,紧接着会通过wx.request把code传到开发者服务器,为了后续可以换取微信用户身份id。如果当前微信用户还没有绑定当前小程序业务的用户身份,那在这次请求应该顺便把用户输入的帐号密码一起传到后台,然后开发者服务器就可以校验账号密码之后再和微信用户id进行绑定。
小程序前端的示例代码
//小程序前端的示例代码:
loginas:function(){
wx.login({
success: function(res) {
if (res.code) {
wx.request({
url: 'http://localhost:8088/ankeWxSmall/login/manualBindAccount',//自己的后台登陆地址
method: 'POST',//指定使用的post请求
header: {
//拼装需要的header,form表单提交
'content-type': 'application/x-www-form-urlencoded'
},
data: {
//传送的数据
code:res.code,//wx.login获取到的code
username: 'phr', // 用户输入的账号
password: '12345678' // 用户输入的密码</