学习小程序——wafer2-client-sdk(vendor)

2018-04-27  本文已影响0人  KtYY

关键词

小程序 、wafer2-client-sdk、vendor、小程序登录会话、Session、带登录态的请求

摘要

由于项目开发需要,涉及到 小程序,本文以学习过程为线索,进行记录。

目录

一、Session(会话控制)概述
二、小程序登录
—— 1、微信临时登录接口 wx.login(OBJECT)
—— 2、会话校验 wx.checkSession(OBJECT)
三、wafer2-client-sdk(vendor)
—— 1、整体分析
—— 2、login
—— 3、request

正文

一、Session(会话控制)概述

二、小程序登录

1、微信临时登录接口 wx.login(OBJECT)
a. 接口定义
OBJECT 参数说明
参数名 类型 必填 说明 最低版本
timeout Number 超时时间,单位 ms 1.9.90
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)
success 返回参数说明
参数名 类型 说明
errMsg String 调用结果
code String 用户登录凭证(有效期五分钟)。开发者需要在开发者服务器后台调用 api,使用 code换取 openid 和 session_key 等信息
b. 登录过程
2、会话校验 wx.checkSession(OBJECT)
a. 接口定义:校验用户当前session_key是否有效。
OBJECT参数说明:
参数名 类型 必填 说明
success Function 接口调用成功的回调函数,session_key未过期
fail Function 接口调用失败的回调函数,session_key已过期
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)
b. 会话密钥(session_keyd)的有效性

开发时,如果遇到因为session_key不正确而校验签名失败或解密失败,请关注下面几个与session_key有关的注意事项。

重新登录后session_key 失效
超过有效期session_key 失效

三、wafer2-client-sdk(vendor)

1、sdk文件分析
image.png
2、login.js解析

请对照源码阅读

 * 进行服务器登录,以获得登录会话
 * 
 *  ->Session.get() 获取用户信息 session.userInfo
 *  ---> 无用户信息 ----------------------------》doLogin()
 *  ---> 有用户信息 wx.checkSession()
 *  ------->success 未过期--------------------------------------------------------》options.success(userInfo)(session.userInfo)
 *  ------->fail 已过期 doLogin()
 *  ---------->getWxLoginResult()
 *  --------------->wx.login() 登录
 *  --------------------> fail --------------------------------------------------》options.fail(LoginError)
 *  --------------------> success 
 *  ------------------------> 得到用户登录凭证 code
 *  ------------------------> wx.getUserInfo() 获取用户信息
 *  ----------------------------> fail-------------------------------------------》options.fail(LoginError)
 *  ----------------------------> success wx.getUserInfo() 
 *  -------------------------------->fail----------------------------------------》options.fail(LoginError)
 *  -------------------------------->success userResult{头像iv,用户信息userInfo,加密数据encryptedData}
 *  ----------------------------------->wx.request() //请求服务器登录地址,获得会话信息session
 *  -------------------------------------->url: options.loginUrl
 *  -------------------------------------->method: options.method
 *  -------------------------------------->data: options.data
 *  -------------------------------------->header: {code, encryptedData, data}
 *  -------------------------------------->fail-----------------------------------》options.fail(LoginError)
 *  -------------------------------------->success res
 *  ------------------------------------------>Session.set(res.skey) 保存session
 * ------------------------------------------->options.success(userInfo)
3、request.js

待续

注:本文是通过搜集网络资源,项目实践后,整合撰写,转载请备注出处。

上一篇 下一篇

猜你喜欢

热点阅读