风气网

微信小程序授权登录最佳实践

2024-09-19来自:本站整理

公司业务开展,最近完成了一个微信小程序的开发。场景是这样,同一微信开放平台下拥有相同主体的APP和微信小程序来完成同样的业务,用户进入app或者微信小程序时必须获取用户的unionid来确认当前的用户身份,完成登录。小程序“获取用户信息”api(getUserInfo)的调用方式和之前相比有了较大更新,优雅的实现用户授权和登录非常重要,以下是我在微信小程序授权登录相关流程在开发时候的实现思路和总结,分享如下。

说明:

你可以简单的理解为

如果开发者在多个移动应用、网站应用和公众帐号之间有统一用户账号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,便可利用UnionID机制来满足上述需求。

用户在开放平台的唯一标识符

你可以简单的理解为:

微信针对不同的用户在不同的应用下都有唯一的一个openId, 但是要想确定用户是不是同一个用户,就需要靠unionid来区分。一般自己的后台都会有自己的一个用户表,每个用户有不同的userid。也就是说同一个用户在同一个微信开放平台下的相同主体的应用对应着相同的userid,unionid以及不同的openid。所以在用户登录进来的时候,我们只能靠微信返回给我们的unionid去判断是不是同一个用户,在去关联我们的用户表,拿到对应的userid。

绑定了开发者帐号的小程序,可以通过下面3种途径获取UnionID。

当用户满足条件2和3时,开发者可以直接通过wx.login获取到该用户的unionid, 否则必须调用接口 wx.getUserInfo ,额外需要注意的事就是妥善处理用户拒绝授权的情况。

在真实的业务场景中,我们希望,用户进入小程序时,未登录情况下可以正常浏览商品,对小程序有个基本的认知,不要直接弹出框要求用户授权,否则会干扰用户,导致新用户的流失,当用户需要使用一些高级功能和场景,这个时候再去要求用户授权,这样用户授权的几率会大大提高。
将登录的逻辑封装ajax
流程:

封装的意义
不再关注当前接口是否需要登录,用户是否已授权,所有请求直接调用 ajax() ,在必要的时候完成一切登录以及授权流程。小程序入口页面增加,业务拓展的时候,你只需要专注于业务实现。

参考资料



  • [红融山18451246363] - 微信小程序授权登录最佳实践
    郝泥垄::场景是这样,同一微信开放平台下拥有相同主体的APP和微信小程序来完成同样的业务,用户进入app或者微信小程序时必须获取用户的unionid来确认当前的用户身份,完成登录。小程序“获取用户信息”api(getUserInfo)的调用方式和之前相比有了较大更新,优雅的实现用户授权和登录非常重要,以下是我在微信小程序授权...
  • [红融山18451246363] - 分包异步化 - 小程序代码体积最佳实践
    郝泥垄::作者:范伟杰、江子玮 面对小程序严格的包体积限制,开发人员不得不在业务与技术之间寻找平衡。常规策略包括:云化非核心静态资源、采用子包拆分(可能导致频繁的代码调整和测试),以及代码抽象和复用第三方SDK的精简管理。尽管如此,一个项目仍然承载着1820kb的庞大体积,仅余200kb的空间,压力可见一斑。
  • [红融山18451246363] - 什么是微信云环境名称
    郝泥垄::微信云环境名称是指在微信开放平台上创建的用于托管小程序后台服务的云环境的名称。微信小程序的后台服务可以通过云开发能力进行开发和部署,而云环境名称则用于标识和管理不同的云开发环境。为什么需要微信云环境名称呢?首先,微信云环境名称可以帮助开发者区分不同的云开发环境,例如开发环境、测试环境和生产...
  • [红融山18451246363] - 微信小程序密钥key可以写在js吗
    郝泥垄::不可以。将密钥直接写在客户端的JavaScript代码中,可能会被用户看到或获取到,从而增加了密钥泄露的风险,一旦密钥泄露,可能会被恶意用户用于访问不应被他们访问的数据或服务,因此最佳实践是将密钥存储在后台服务器端,并通过安全的接口传输到小程序的前端代码中,这样可以最大程度地减少密钥泄露的风险,并...
  • [红融山18451246363] - “微信内已上线“微信刷掌支付”小程序,这一方式背后有无财产泄露风险...
    郝泥垄::微信内已上线微信刷掌支付小程序,这一方式背后有无财产泄露风险的话,对于这个方式背后的话,那么当然有这个财产介入的一个风险的,因为有一些特殊的科技呢,那么是能够盗取我们手中的一个长的指纹的,这样的话就会导致别人可以使用我们的这个掌纹进行一个支付,这样的话就会有这个财产的一个泄露的一个...
  • [红融山18451246363] - 如何使小程序显示的数据多
    郝泥垄::另外,可以查找相关的技术文档或开发者论坛,以了解类似小程序中显示数量的限制和最佳实践。这将帮助更好地理解普查登记小程序的设计和功能特点。普查登记小程序的作用 首先,它为普查员提供了便捷的任务分配和工作协同工具,通过企业微信进行普查前的任务分配和协同工作。其次,普查登记小程序还用于上门摸底,...
  • [红融山18451246363] - 小程序开发哪个公司做得好
    郝泥垄::1.经验与专业能力:选择一家有经验丰富且具备专业技能的小程序开发公司。查看他们的项目案例、客户反馈以及公司的发展历程,以确保他们有能力满足你的需求。2.技术能力:了解公司是否掌握你需要的技术栈,例如微信小程序、支付宝小程序等。确保他们能够提供高质量、安全且符合最佳实践的开发服务。3.服务范围...
  • [红融山18451246363] - 使用uniapp开发微信小程序有风险吗
    郝泥垄::1.在使用UniApp开发微信小程序之前,详细了解UniApp的文档和社区,确保你对框架的特性和限制有清晰的了解。2.遵循微信小程序开发的最佳实践,以确保应用在审查过程中能够通过。3.定期关注UniApp和微信小程序的更新,及时应用最新的版本以获得更好的性能和兼容性。总体而言,只要谨慎使用并合理遵循开发规范,...
  • [红融山18451246363] - 学习微信小程序开发需要具备哪些基础知识?
    郝泥垄::5. 调试和测试:学习使用调试工具和技术来定位和解决代码中的问题。掌握单元测试和集成测试等基本测试概念,有助于提升小程序的质量和稳定性。6. 移动端开发知识:微信小程序主要运行在移动设备上,因此了解移动端开发的特点和最佳实践,如响应式设计、移动端布局和性能优化等,对于开发出优质的小程序至关...
  • [红融山18451246363] - 微信小程序之WXS 语言的使用
    郝泥垄::= "hello wexin xiaochengxu";module.exports = { DATA: data}<\/wxs>最后,<view>{{hh.DATA}}<\/view>会显示嵌套WXS中的变量值。深入理解WXS,让我们在微信小程序开发中更加游刃有余,利用其特性提升应用性能和用户体验。在官方文档《微信的js》中,你可以找到更多关于WXS的详细信息和最佳实践。
  • 首页 热门
    返回顶部
    风记网