项目多,微信授权回调地址来回变怎么办?
前言
由于公司项目用到微信授权,但是项目很多,对应的公众号也不一样。而且暂时使用的是公众号进行配置回调域名来做用户授权。但是,有时候一个公众号可能对应多个回调域名,所以为了让回调域名统一话,增加中转站点来支持多域名回调。
流程解读
授权流程
- 假如现在有四个站点都需要使用同一个公众号进行微信授权。回调域名分别是:domain1/callback,domain2/callback,domain3/callback,domain4/callback。现在我们发起授权请求到中转站
- 中转站接收到授权请求之后,根据不同的站点来源标识请求(3)API,获取授权跳转地址,跳转到微信授权服务(4)。并且将站点来源标识保存到cookie中。
- 由于微信公众号配置的回调域名为中转站的域名(例如:auth.center/callback)。那么当用户授权成功之后,先回调到中转站,auth.center/callback?code=123456789
- 中转站拿到code之后。读取cookie值,然后在将code回传给站点回调。 domain1/callback?code=123456789
- 站点拿到code之后进行微信用户获取操作即可。此时整个授权流程结束。
总结
一个公众号不能配置多个回调域名的时候,采用中转站进行回调操作。此时公众号只需要配置一个回调域名,即中转站回调地址。中转站所要做的工作就是根据不同的请求来源,跳回不同的站点回调地址。已达到单个公众号授权多域名的操作。
缺点:需要多跳转一步。
优点:授权地址集中处理,业务可以自己掌握。
多学点,总不会吃亏的。