通常来说,真正意义的微信小程序授权登录只能在微信的APP中进行,是指由微信APP授权给微信小程序;而FinClip小程序的授权登录则是通过集成了SDK的第三方APP进行授权(因为一般APP自己就具有账号体系)。
而在集成FinClip SDK的APP中,也存在同类问题:即如何帮助用户,更快速、更便捷、更低门槛的实现登录?
正在工地搬砖的FinClip攻城狮们在了解到开发者的这一痛点后,立下Flag,打算用一系列文章帮助大家解决这个问题。
今天,我们将从最基础的第一步开始:
帮助集成FinClip SDK的APP们实现微信登录的对接,同时满足App将微信账号同步给小程序、完成授权登录的目标!即:打造自己App特有的“类微信”小程序的授权登录。
先分解一下这个问题:
真正意义的微信小程序授权登录只能在微信的APP中进行,是指由微信APP授权给微信小程序;而FinClip小程序的授权登录则是通过集成了SDK的第三方APP进行授权(因为一般APP自己就具有账号体系)。
所以,即使第三方APP支持通过微信账号体系进行登录,然后再授权给FinClip小程序进行登录,也不能算真正意义的微信授权登录,本质上是第三方APP对FinClip小程序的授权登录。
综上,如果想实现APP对FinClip小程序的授权登录,具体可参考如下步骤:
关于后端业务流程:授权登录相关后台之间的交互
1. 简单概括后端交互流程
- 用户进入第三方应用后触发了授权弹窗,用户同意授权后,第三方页面于是知道了它被允许获取用户的相关信息了;
- 但这个信息第三方那里肯定没有,而因为用户已经登录过客户端了,客户端系统肯定存有,所以它需要去找客户端要用户信息;
- 但在没有经过客户端系统允许的情况下,第三方不可能直接和客户端系统交流,因为中间隔着弹窗(客户端前端),所以它先让授权弹窗去告诉客户端系统,说想聊一聊;
- 于是弹窗就去告诉客户端系统,说有人想聊一聊,客户端系统判断了下第三方是好人之后同意了,给出了通行证;
- 有了这个通行证之后,双方系统之间就可以进行交流了,也就可以拿到用户的信息了,从而实现登录和关联账户。
2. 其中必要的参数
-
code:可以看作第三方要发起授权所必须取得的通行证,有了这个通行证,双方的服务层才能进行交互。当第三方前端调起授权弹窗时,由客户端前端获得后返回给第三方,第三方拿到code后,可以通过后端之间的交互去申请指令派access_token,有效期很短(可能短于5s)。
-
access_token:俗称指令牌,由客户端服务端鉴权中心根据code和第三方应用信息返回给第三方后端,有了指令牌,第三方就可以申请从客户端服务器里获得用户信息了,有效期一般较短(如1个小时)。
-
refresh_token:用以在access_token过期后,重新刷新指令牌的计时,有效期一般较长(如120天),超过有效期之后,整个授权登录过程就要重新来一遍。
-
openid:用户的唯一标识,通过openid第三方可以从客户端服务器拿到对应用户的账户信息,从而将其和自己本身的账号进行关联。
3. 几种异常情况
- 几种必要参数过期或失效;
- 用户状态异常——未注册第三方账号、风控黑名单等、登录状态异常、未签约成功;
- 商户状态异常——未签约该产品、权限不足、第三方应用校验不合法;
- 授权、查询失败;
- 系统服务超时或不稳定。