用户登录

在微信登录接口这里,有了登录凭证,再去请求微信登录会话 .. 用一个 try catch 区块 .. 要做的是添加一个 sessionData .. 可以 await ,执行 getWxSession .. 把 code 交给这个函数 .. 一会儿再去定义它 ..

暂时先响应一个 ok ..

catch 到了错误 ..做出响应 .. 状态码是 500 ,表示内部服务错误 .. 响应的信息是 error 里的 message ..

下面找个地方再去定义 getWxSession .. 它是一个 async 函数 .. 有个 code 参数 .. 在函数里先配置一下要请求的微信接口地址 ..

添加一个 WX_API .. 地址是 https://api.weixin.qq.com/sns/jscode2session ..

再添加一个 url .. 组织一下要请求的地址 .. 先是 WX_API .. 加上一些参数 .. appid .. 它的值是 WX_APP_ID .. 还需要 secret 参数 .. 值是 WX_SECRET .. js_code 参数的值是登录凭证 .. 用一下 code 这个参数的值 .. 再把 grant_type 设置成 authorization_code ..

在下面再添加一个 try .. catch .. try 里面添加 resposne .. await ... 用一个 http 客户端去请求在上面组织好的接口地址 ..

catch 到了错误就 throw 一个新的 Error .. 信息是 获取微信登录会话失败!

回到终端 .. 去做项目安装一个 http 客户端 .. 可以用一下 axios 这个模块 .. 保存在项目的开发依赖里面 ..

在 user 模块的顶部 .. 导入刚才安装的客户端 .. 名字叫它 http .. 来自 axios 这个模块 ..

然后回到小程序的 UserAccount 页面 .. 请求微信登录接口,得到了响应以后,先把它输出到控制台上 ...

在模拟器上试一下 .. 按一下 微信登录 ..

控制台上报了一个错误 .. 提示 502 ..

回到运行服务的终端 .. 这里提示说 await 只能在 async 函数里用 ..

在 user 模块的这个微信登录接口里面 .. 把它的处理方法标记成一个 async ...

再到模拟器上试一下 ..

按一下 微信登录 .. 它会先获取到用户的登录凭证,然后把它发送到我们的后端服务的微信登录接口 .. 接口收到了登录凭证,就去请求微信接口获取到微信用户的会话信息 .. 成功之后,在控制台上输出的响应的数据里,会有一个 ok ..

再到运行服务的终端检查一下 .. 提示了一个 undifined ..

这是因为,这个 getWxSession 方法没有返回东西 .. 让它 return response 里的 data ..

再回到模拟器 ... 按一下微信登录 ..

回到终端 .. 这里后面服务接口输出了它获取到的微信用户的会话信息 .. 里面有 session_key .. 就是会话 .. 还有 openid .. 它是加密之后的用户的微信号 .. 因为我在微信开放平台绑定了这个小程序,所以这里还会有一个 unionid ..

获取用户微信登录会话《 电商小程序案例:微信登录 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点