微信通过网页授权可以在网页内获取微信用户信息,进而在网页内实现相关的业务逻辑。
微信网页授权的scope有两种,一、base 只能获取openId信息,二、userInfo 获取的信息较多。
同意授权页面链接最终会是如下形式:
`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect`
或者
`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
业务场景
进入页面——判断该用户是否激活——激活显示后续页面——未激活显示激活页面
我的思路是通过页面授权,页面获取openId信息,通过url后面拼接的code获取openId信息,然后根据openId查询数据库获取用户激活情况返回给前端页面。
但是直接通过网页授权会出现一个问题,code用过一次时候就会失效,如果用户在微信内刷新网页就会出现问题。
因此,我的解决思路是微信授权页面不是直接指向静态页面,而是指向RESTFUL服务后台,控制器处理后获取用户的相关信息将参数通过加密合成一个参数拼接在静态页面的url后,然后重定向到静态页面,如此页面直接获取用户的信息,用户在微信内刷新网页也不会有影响。
网友评论