• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信小程序登录流程

原作者: [db:作者] 来自: [db:来源] 收藏 邀请


会话** session_key 是对用户数据进行 加密签名 的**。为了应用自身的数据安全,开发者服务器不应该把会话**下发到小程序,也不应该对外提供这个**。
临时登录凭证 code 只能使用一次

  1. 检测登录是否有效,如果无效则清楚登录信息(wx.checkSession);
  2. 调用接口获取登录凭证(code)(wx.login);通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话**(session_key)等。用户数据的加解密通讯需要依赖会话**完成。
  3. 客户端获得code,并将code传给第三方服务端
    微信小程序端调用wx.login,获取登录凭证(code),并调用接口,将code发送到第三方客户端
  4. 第三方服务端用code换session_key和openid
    小程序端将code传给第三方服务器端,第三方服务器端调用接口,用code换取session_key和openid
  5. 第三方服务端生成新的session(3rd_session)
    第三方服务器端拿到请求回来的session_key和openid,先留着,不能给客户端;然后用操作系统提供的真正随机数算法生成一个新的session,叫3rd_session
  6. 第三方服务端建立对应关系,并存储
    将3rd_session作为key,微信服务端返回的session_key和openid作为值,保存起来
  7. 第三方服务端将3rd_session发送到客户端
    客户端只拿到3rd_session就够了,大人说话小孩别插嘴,小程序不需要知道session_key和openid
  8. 正常请求
    小程序每次请求都将3rd_session放在请求头里,第三方服务端解析判断合法性,并进行正常的逻辑处理。

UnionID

调用接口 wx.getUserInfo,从解密数据中获取 UnionID。
开发者可以直接通过 wx.login + code2Session 获取到该用户 UnionID,无须用户再次授权。
用户在小程序(暂不支持小游戏)中支付完成后,开发者可以直接通过getPaidUnionId接口获取该用户的 UnionID,无需用户授权。
小程序端调用云函数时,如果开发者帐号下存在同主体的公众号,并且该用户已经关注了该公众号,可在云函数中通过 cloud.getWXContext 获取 UnionID
小程序端调用云函数时,如果开发者帐号下存在同主体的公众号或移动应用,并且该用户已经授权登录过该公众号或移动应用,也可在云函数中通过 cloud.getWXContext 获取 UnionID

单点登录


什么是单点登录?
单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分;

  1. 用户试图访问服务器A的服务器资源,系统发现用户未登录,跳转至sso认证中心,并将自己的项目的地址作为参数(参数我们这边是用SMAL格式的数据进行交互)
  2. sso认证中心发现用户未登录,将用户引导至统一的登录页面
  3. 用户输入用户认证信息,向sso服务器发起认证请求

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
二年级100以内口算题自动生成、批改的小程序发布时间:2022-07-18
下一篇:
小程序图片放大预览左右滑动发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap