• 微信小程序-新的页面授权机制


    背景:

    为了防止在打开小程序就通过组件方式唤起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/

  • 相关阅读:
    PHP-------抽象和接口
    MySQL函数
    MySQL索引
    MySQL语法
    MySQL视图、事务
    最简洁粗暴版的虚拟用户配置FTP
    linux网络bond技术
    CentOS 7服务
    Nginx 基础
    shell 截取指定的字符串
  • 原文地址:https://www.cnblogs.com/cqy1125/p/14849975.html
Copyright © 2020-2023  润新知