微信网页授权

网页授权

网页授权文档入口

按照微信开方文档中的介绍,要想进行网页授权需要四步

  1. 引导用户进入授权同意页面,获取code;
  2. 通过code换取网页授权access_token(与基本支持中access_token不同);
  3. 如果需要,开发者可以刷新网页授权access_token,避免过期;
  4. 通过网页授权access_token和oppenid获取用户基本信息(支持UnionID机制)。

一、同意授权、获取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=${sessionStorage.$appid}&redirect_uri=${sessionStorage.$redirect_uri}&response_type=code&scope=snsapi_userinfo&state=STATE&connect_redirect=1#wechat_redirect

获取code的前提是进入授权同意页面,用户同意授权后,然后根据配置的重定向地址跳转到指定页面,并将code以参数形式传递过去,然后获取get参数,就可以拿到code。

访问地址如上,直接location.href跳转即可,上面是将请求路径放在前端去处理,只需要配置appid和重定向地址即可,当然也可以在后台配置,配置一个接口,在前台调用的时候去访问链接。

二、通过code换取网页授权access_token

获取code后,请求以下链接获取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=${code}&grant_type=authorization_code

获取code之后,可调用上面的接口获取access_token、openid等内容,只需要更改其中的code值为第一步获取的code即可。

需要注意的是:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。

所以这一步操作就必须要在服务端进行了,服务端写一个接口接收code,在服务端调用微信接口,拿到结果,再将结果返回给前端(具体的结果内容参照微信开放文档,非常详细)。

回到第一步,最好也单独在服务端写一个接口,可以将一些参数配置放到数据库存起来,这样方便以后项目中配置参数的更改。

posted @ 2021-03-15 15:10  luckiest  阅读(485)  评论(0)    收藏  举报