微信小程序> 小程序登录流程

小程序登录流程

浏览量:797 时间: 来源:浪子四方

目录

1 登录流程时序图

2 wx.login(Object object)

2.1 使用案例

3 auth.code2Session

4 RuquestTask wx.request(Object object)

4.1 使用案例

5 小程序登录 


1 登录流程时序图

 

 

从登录时序图来看,我们需要通过wx.login()来获取code,然后把获取到的code以及小程序的appid、appSecret一起作为条件来调用微信接口获取用户的openid(要有想获取用户信息的权限),关于权限的申请在另一篇文章有描述,这里就不展开讲了。

下面我们来聊一聊wx.login()和用来发送http请求的wx.request()

 

2 wx.login(Object object)

可以用来获取登录凭证(code),通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等。

 

参数

属性类型默认值必填说明
timeoutnumber 超时时间,单位ms
successfunction 接口调用成功的回调函数
failfunction 接口调用失败的回调函数
completefunction 接口调用结束的回调函数(调用成功、失败都会执行)

 

object.success(Object res) 回调函数

Object res

属性类型说明
codestring用户登录凭证(有效期五分钟)

 

2.1 使用案例

调用wx.login()获取code

wx.login({  success(res) {    if (res.code) {      consolse.log(res.code)    } else {      console.log('登录失败!' + res.errMsg)    }  }})

 

3 auth.code2Session

登录凭证校验,通过 wx.login()接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程

 

接口地址

GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

请求参数

属性类型默认值必填说明
appidstring 小程序 appId
secretstring 小程序 appSecret
js_codestring 登录时获取的 code
grant_typestring 授权类型,此处只需填写 authorization_code

 

返回值( JSON 数据包)

属性类型说明
openidstring用户唯一标识
session_keystring会话密钥
unionidstring用户在开放平台的唯一标识符,在满足 UnionID 下发条件的情况下会返回,详见 UnionID 机制说明。
errcodenumber错误码
errmsgstring错误信息

errcode 的合法值

说明
-1系统繁忙,此时请开发者稍候再试
0请求成功
40029code 无效
45011频率限制,每个用户每分钟100次

 

4 RuquestTask wx.request(Object object)

发起 HTTPS 网络请求

参数

属性类型默认值必填说明
urlstring 开发者服务器接口地址
datastring/object/ArrayBuffer 请求的参数
headerObject 设置请求的 header,header 中不能设置 Referer。
content-type 默认为 application/json
methodstringGETHTTP 请求方法
dataTypestringjson返回的数据格式
responseTypestringtext响应的数据类型
successfunction 接口调用成功的回调函数
failfunction 接口调用失败的回调函数
completefunction 接口调用结束的回调函数(调用成功、失败都会执行)

object.method 的合法值

说明
OPTIONSHTTP 请求 OPTIONS
GETHTTP 请求 GET
HEADHTTP 请求 HEAD
POSTHTTP 请求 POST
PUTHTTP 请求 PUT
DELETEHTTP 请求 DELETE
TRACEHTTP 请求 TRACE
CONNECTHTTP 请求 CONNECT

object.success 回调函数

参数 Object res

属性类型说明
datastring/Object/Arraybuffer开发者服务器返回的数据
statusCodenumber开发者服务器返回的 HTTP 状态码
headerObject开发者服务器返回的 HTTP Response Header

data 参数说明

最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。

 

4.1 使用案例

以POST方式请求post.php,并携带数据name=Trevor和age=23

wx.request({  url: 'post.php', // 请求的地址  data: {    name: 'Trevor',    age: 23  },  method:'POST'    // 以POST方式请求  },  success(res) {    console.log(res.data)  }})

到此我们把小程序登录的基础知识有了一个大概的认识,下面步入正题。

 

5 小程序登录 

    wx.login({      success:function(res){        const code=res.code        const appid ="小程序的AppID";        const secret ="小程序的AppSecret"        const url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appid + "&secret=" + secret+"&js_code="+code+"&grant_type=authorization_code"        wx.request({          url: url, // 接口地址          success(res) {            const data=res.data            console.log(data.openid);   // 输出openid,之后就可以编写自己的业务逻辑了          }        })      }    })

 

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

最新资讯

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎