我们在写小程序微信授权的时候,微信有自己的内置浏览器,我们要先判断用户是否在微信客服端登录
String ua = request.getHeader(“User-Agent”);判断ua里是否有MicroMessenger字符串,ua.contains(“MicroMessenger”)
微信的授权有两种方式,一种是静默授权snsapi_base为scope,用户为感知,只能获取用户的openid。
另一种是scope为snsapi_userinfo需要用户同意才行,因为这里介绍的是开发微信的公众号授权,用户已经关注,所以也是为感知的。
第一步,获取用户的code
向网址https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=#wechat_redirect发送一个get请求,然后会返回code.
第二步。通过code换取acesstoken
向网址https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code发送get请求,把获取到的code带上。
第二步:获取access_token,如果请求正确,返回的报文格式为:
{
“access_token”:“23_mWh2UY7923dsbmeFF6ULj0TC5CYt_0BGt6qkYp4sdZRixeBlnV