前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信开发之-登录

微信开发之-登录

作者头像
灬沙师弟
发布2023-07-08 17:00:53
4010
发布2023-07-08 17:00:53
举报
文章被收录于专栏:Java面试教程

前言:

了不起学弟:了不起,上次你和我讲了如何去维护一个access_token了,我也学会了

了不起:嗯!不错,学会了就好啊哈哈

了不起学弟:你这次再给我讲讲微信登录这一块的逻辑呗~

了不起:。。。行吧,那我就再给你讲一讲

正文:

我们整个微信登录的流程一共涉及到3个交互。第一个就是小程序前端,第二个就是小程序服务端,第三个就是微信服务端。

第一步:

小程序前端调用wx.login。

官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html

小程序前端,调用login这个接口,最主要的目的就是去换取code,而这个code的作用,就是和我们第二步去做交互。

这个code的有效是五分钟,我们要在五分钟之内去调用第二步的操作。大家可以看一下官网上的代码示例。

第二步:

小程序服务端调用code2session。

官方文档地址:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/user-login/code2Session.html

我们第一步过后就会去调用这个接口,去校验登录凭证。

大家可以看一下参数,有appid,secret,js_code,grant_type。分别的意思,前两个是小程序会给你的固定的参数,js_code就是第一步通过wx.login获取到的code grant_type此处只需填写 authorization_code。

返回参数有:openid,errcode,errmsg,unionid,session_key。分别的意思,openid就是微信用户的唯一标识。errcode和errmsg就不作解释啦。unionid就是小程序和服务号关联就会返回一个unionid。session_key就是会话秘钥。unionid的机制大家参考官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html 我们获取到session_key和openid后,我们我要要把这两个给关联起来并且生成一个token。这个session_key 是不可以直接给前端的,因为有安全风险问题。我们可以在缓存关联一个token:openid ,然后在openid:session_key。

第三步:

经过第二步后,我们返回了一个token给小程序前端。小程序前端需要把这个token维护在storage内,下一次小程序前端请求小程序后端的时候,就必须得携带这个token。

泳道图总结:

UnionId补充:

对于同一个微信平台下的应用(比如服务号和小程序),同一个用户openid是不同的,但是unionId是相同的。

不需要用户授权,我们走今天说的第一步和第二步就可以获取到用户的unionid。这边开发中有这样的需求的话,我们在用户表里面是要同时去存储unionid和openid的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java面试教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言:
  • 正文:
    • 第一步:
      • 第二步:
        • 第三步:
          • 泳道图总结:
            • UnionId补充:
            相关产品与服务
            云开发 CloudBase
            云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档