在微信小程序下,小程序登录功能一般会通过 OpenID
或 UnionID
作为唯一标识,与小程序服务的账号体系进行关联打通,完成用户账户体系的构建与设计。
对于从微信小程序环境迁移到 FinClip 下的小程序,就会遇到如下问题:
- 登录流程如何快速复用?怎样与小程序服务的账号体系关联?
- 如何让微信小程序中的用户数据与 FinClip 的数据打通?双方的账号体系如何关联?
遇到上述问题时,我们建议您通过以下方案尝试解决:
#方案一:服务端改造
适用场景:平台方通过 FinClip 构建自有生态,FinClip 环境中运行的都是第三方的小程序(即平台方无法修改小程序代码)。
- 第一步:在 App 中通过自定义 API 注入
wx.login
方法,按照微信小程序的格式返回 code; - 第二步:小程序无需改动,按照在微信端的实现,此时会将 code 发送给开发者的服务器;
- 第三步:开发者服务器进行适配,通过 code 可判断登录来自 FinClip 平台,从 code 中解析出
UserID
,返回自身账户体系的内容即可。
#方案二:服务端改造(唤起微信授权)
使用场景:平台方通过 FinClip 完成自身功能的拆分,小程序都由平台方自己开发(即平台方可以修改小程序代码)。
- 第一步:SDK 中集成微信开发平台 SDK;
- 第二步:使用自定义 API 注入
wx.login
,唤起微信授权后即可取得返回 code,此时可能需要对 code 拼接唯一标识; - 第三步:小程序无需改动,按照在微信端的实现,此时会将 code 发送给开发者的服务器;
- 第四步:服务端根据 code 唯一标识,调用不同的授权接口取得
OpenID
,查询登录态返回;
限制:由于微信限制不同主体,不同开放平台下的 OpenID
是不一致的,此时小程序需要关联到同一主体,或者同一开放平台(此时唯一标识为 UnionID
)。
#方案三:小程序改造
适用场景:对小程序进行逻辑修改,当判断 FinClip 环境中时,直接从 wx.login
中获取需要的信息(即平台方可以修改小程序代码)。
- 第一步:APP 使用自定义 API 注入
wx.login
,返回当前 APP 用户的登录态即可。