微信作为目前全国使用率最高的个人通讯软件之一,几乎绑定了每个人的登录账号,无论是网站还是游戏、媒体平台等第三方平台,几乎都会在登录界面中添加“微信登录”的按钮。而微信登录为用户带来了极大的便利。用户不再需要记住多个账号和密码,操作更简单。同时微信作为可信的中间平台,用户也可以更放心地使用,避免个人信息被其他应用盗取。企业网站支持微信等第三方登录方式显得尤为重要。

01.基于微信生态,你会面临怎样的问题?

当你基于微信生态开发一个创新应用时,如何充分利用微信的多场景开放能力,以及如何处理复杂的 OpenID 和 UnionID 机制,都是必须解决的重要问题。微信的生态系统庞大且登录场景多样化,包括 PC 端网站扫码登录、公众号网页授权、小程序内授权等,不同场景需要调用不同的接口。这种复杂性无疑增加了开发者的理解难度和开发成本。

作为一名微信生态的开发者,在为你的应用实现微信登录能力时,你可能会面临重重困惑:

  • 不同类型应用在微信的创建和配置流程是什么?
  • 作为不同类型应用的开发者,在实现微信登录能力时,有哪些方式可供选择?
  • 各种类型的微信登录方式,要怎么完成配置,怎么实现登录?
  • 微信用户在登录你新开发的应用后,你要如何管理微信生态中的用户身份?

02.Authing 微信生态功能全景

如果你有上述困惑不知如何下手,Authing 微信生态全场景能力可以助力你实现各个场景的微信登录流程。下表是 Authing 支持的全场景的微信生态操作流程以及对应场景下可供选择的微信登录能力类型。你可以直接点击链接前往了解所需功能。
docs.authing.cn/v2/guid

03.Authing 微信生态账号体系

微信用户账号体系的基本概念
微信提供 OpenID 和 UnionID 作为用户标识。两者区别如下:

OpenID· OpenID 是微信用户在不同类型产品的身份 ID。
· 微信用户访问公众号、小程序、移动应用、网站应用、小商店等都会有唯一的 OpenID 。
· 同一个微信用户访问不同的产品生成的 OpenID 也是不一样的。例如,对于不同公众号,同一用户的 OpenID 不同;同理,对于不同的小程序,同一用户的 OpenID 也是不同的。

UnionID· UnionID 是微信用户在同一个开放平台下的产品的身份 ID。
· 如果开发者拥有多个移动应用、网站应用和公众帐号(即公众号和小程序),可通过 UnionID 来区分用户的唯一性。因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的 UnionID 是唯一的,即同一用户对于同一个微信开放平台下的不同应用,UnionID 是相同的。

形象来说,一个独立的微信用户,在微信的不同登录场景下的唯一标识可以用下图展示:

Authing 基于微信生态的账号解决方案
根据「用户在 Authing 用户池是否存在」以及「你的微信应用是否已经接入微信开放平台」,针对你的账号处理,有四种场景:

当微信生态的用户通过微信登录方式进入到 Authing 用户池,有四种可能的场景,通过两个维度进行考量:

该用户在微信开放平台是否拥有 UnionID?

该用户在 Authing 用户池是否是新用户?由此分为四种场景:

用户在微信开放平台有 UnionID,是 Authing 用户池中的新用户(第一象限)。在这种情况下,用户首次通过微信登录已经集成在 Authing 的应用时,将会在你的 Authing 用户池中创建新账号,该用户账号信息中会包含从微信开放平台上获取到的该用户的 OpneID 和 UnionID。

用户在微信开放平台无 UnionID,是 Authing 用户池中的新用户(第二象限)。在这种情况下,用户首次通过微信登录已经集成在 Authing 的应用时,将会在你的 Authing 用户池中创建新账号,该用户账号信息会同时包含从微信接口获得的 OpneID,但由于该微信应用并未加入微信开放平台,因此这个账号信息并不包含 UnionID。

用户在微信开放平台无 UnionID,是 Authing 用户池中的老用户(第三象限)。在这种情况下,用户通过微信登录已经集成在 Authing 的应用时,由于该账号已存在,因此登录时会通过 OpneID 和 UnionID 进行匹配。当同一个微信账号由于其 OpneID 和 UnionID 的具备情况不一、而能够在你的用户池中对应多个账号时,将会支持账号选择,选择完成后会完成登录。

在什么场景下,Authing 微信生态能够帮到你?ing 用户池中的老用户(第四象限)。在这种情况下,用户通过微信登录已经集成在 Authing 的应用时,由于该账号已经存在,并且并不会出现不存在 UnionID 的情况,因此会通过 UnionID 直接匹配成功并完成登录。

04.在什么场景下,Authing 微信生态能够帮到你?


Authing 针对微信生态的复杂场景,在前端为开发者提供了简洁、统一的 SDK,在后端基于 OpenID、UnionID、手机号三个维度自动处理同一身份识别、账号合并等逻辑。开发者只需要调用前端 SDK,而无需操心各种复杂的身份识别逻辑。

PC 网站使用微信扫码登录
微信 PC 扫码登录可以让用户使用微信身份安全登录第三方应用或网站,在 Authing 中开启微信扫码登录之后,通过微信扫码登录,开发者可以借助 Authing 的平台优势,轻松对接微信生态的多场景登录能力,同时简化了开发和集成的流程。Authing 内置的高效 API 帮助开发者快速获取微信用户的 OpenID、UnionID 等身份标识,解决了不同应用场景中复杂的用户身份管理问题,实现统一的身份认证和用户数据管理。

PC 网站使用小程序扫码登录
这是 Authing 的一个开创性的设计,在 Authing 中开启扫描小登录二维码登录后可以获得微信官方的实名用户信息, 用户一键授权即可以真实号码完成注册或者登录,为开发者建立以手机号码为基础的账号体系。相比传统的账号密码登录方式,小程序扫码登录极大地提升了用户体验。用户不需要记忆繁杂的账号或密码,直接通过微信扫码并授权即可登录。基于微信的实名制认证,小程序扫码登录能够让开发者获取经过微信认证的用户信息,包括手机号码等关键数据。开发者可以在不牺牲用户体验的前提下,确保用户身份的真实性,并且为后续的身份管理、营销活动等打下坚实基础。

移动端拉起小程序登录
移动端拉起小程序登录是建立以手机号为核心的用户体系的关键方式,尤其在如今移动互联网高度普及的背景下,越来越多的应用和服务希望借助手机号作为用户身份的基础进行统一管理。通过手机号登录,能够确保用户的真实性,同时也为后续的账号管理、营销推广等奠定了基础。Authing 帮助开发者简化这一过程,使得开发者能够轻松实现移动端与微信小程序之间的无缝衔接,快速获取用户的授权手机号,建立以手机号为基础的账号体系。Authing 通过 SDK 为开发者大大降低了开发的复杂度,一行代码即可通过移动端获取用户在小程序中授权的手机号,建立以手机号码为基础的账号体系。

移动端拉起微信登录
移动端拉起微信登录是应用开发中实现便捷、安全用户身份验证的重要方式之一,特别是在以微信为主要社交平台的中国市场,微信登录已经成为各类应用接入的重要功能。为满足这一需求,Authing 为开发者提供了极为简便的解决方案,支持在 iOS 或 Android 应用中快速跳转到微信登录页面,并轻松获取用户的微信信息。通过集成 Authing 移动端 SDK,开发者可以大幅简化微信账号接入的流程和技术难度。Authing 的移动端微信登录功能不仅操作简便,开发者只需调用几行代码,便可轻松完成微信登录的集成,快速引导用户从移动应用跳转至微信授权页面。

微信内网页使用微信授权登录
用户在微信客户端中访问第三方网页、公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。Authing 针对这一场景,为开发者提供了便捷高效的解决方案。通过 Authing 提供的 SDK,开发者可以轻松集成微信网页授权登录功能,快速获取用户信息并完成登录操作。当用户在微信客户端中访问第三方网页、公众号等应用场景时,Authing 的微信网页授权登录机制能够自动引导用户授权。用户只需点击授权按钮,系统便会获取用户的微信账号信息。

微信小程序内登录
微信小程序内登录是企业和开发者在微信生态中获取用户身份信息、快速完成用户注册和登录的一种重要方式。为应对这一需求,Authing 提供了一套完整的 SDK,专门帮助开发者简化微信小程序登录的集成流程,并高效获取用户的身份信息。通过 Authing 的 SDK,开发者可以轻松实现用户身份验证,快速建立以手机号码为基础的账号体系,进一步增强用户的体验和数据管理能力。整个授权登录流程经过优化,使得用户体验更加流畅,用户只需简单的授权操作,便可以使用其微信账号快速登录小程序,无需额外输入复杂的账号或密码。

05.众多合规认证,保障身份安全


毋庸置疑,客户数据安全性和合规性是大多数公司的首要考虑因素。Authing 在产品中内置了先进的安全性,因此您无需为您的用户和业务安全忧虑。

  • 行业标准协议:通过采用支持 OAuth 和 OpenID Connect 等行业认证标准的身份平台,提高业务运营和执行的一致性和连续性。
  • 合规性和认证:Authing 拥有多项国内国际合规认证,包括国家三级等保、SOC 2、GDPR、ISO 9001、CCPA、PCI、HIPAA 和 FERPA 等,誓要保障每一位用户、每一个业务的安全。
  • 公共和私有云:在 Authing 的公共云、我们的私有云或您的 AWS 环境中托管您的应用。我们高度可用的多租户云服务每天可以处理大量交易。