zoukankan      html  css  js  c++  java
  • 微信小程序-新的页面授权机制

    背景:

    为了防止在打开小程序就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序

    打断用户正常使用小程序流程,同时不利于获取新用户

    老授权登录:

    刚推出时:

    •  使用wx.loginwx.getUserInfor,用于登录授权获取登录信息.
    •  wx.login获取授权的openid的codesession_key.
    •  wx.getUserInfo 会弹出授权弹窗,经过授权后,会返回加密的用户数据,由后端session_key进行解密

    此后不久:

    • 授权则需要使用微信提供的专门 button 组件进行触发(防止一进来时触发)

    注意:老版本最大的特点经过一次授权后,可以随时静默的获取用户信息

    新版本登录:  

    • 使用wx.login获取UnionID
    • 新增wx.getUserProfile接口,代替原来的wx.getUserInfo,新接口会主动弹出授权,但只能一次获取当前的昵称头像,而且仍然需要用户点击后调用

    开发适配方案:

      在文档小程序中,原有的登录接口是二合一的,即前端先调用完 wx.login 和 wx.getUserInfo,得到 code 和加密的用户信息,然后一起调用后端接口,后端查询已有用户或创建新用户,并对用户头像昵称信息进行更新。

      思路:

    1. 前端调用 wx.login,得到 code,并调用后端登录接口,得到提前颁发的登录态;
    2. 前端调用现有的获取业务用户信息接口,判断业务是否已获得昵称头像,如果已有昵称头像,直接保存 1 中的登录态,登录完成;
    3. 如果还未获得昵称头像,则弹出授权,授权后调用后端上传昵称头像接口,将得到的昵称头像进行保存;
    4. 根据产品交互设计,在用户选择更新昵称头像时,重复 3 中的步骤,授权并更新昵称头像。

      转载自AlloyTeam:http://www.alloyteam.com/2021/04/15431/

  • 相关阅读:
    [Oracle工程师手记]如何收集 RMAN 工作时的 10046 trace
    [Linux]Linux环境,如何查找一个目录下所有包含特定字符串的文件
    [Oracle工程师手记]如何找到 RMAN 的所有 session
    PowerShell提交HTTP Request Post请求
    PowerShell计算字符串MD5 Hash值
    《异类》笔记
    《哈弗商学院 判断与决策心理学课》笔记
    《影响力》笔记
    《金字塔原理》笔记
    三月十九日,偶感
  • 原文地址:https://www.cnblogs.com/cqy1125/p/14849975.html
Copyright © 2011-2022 走看看