简述微信登录流程:
微信登录可以获取用户的openid、昵称、头像、性别等等
微信登录只能用认证过的服务号,有了认证的服务号后,在微信公众平台中,拿到公众号的appid和appsecret,绑定“授权回调页面域名”,准备工作结束
流程:微信登录需要做重定向做验证,下面的三个步骤中,第一步会重定向跳转,第二、第三步每个步骤都会请求微信接口
1、首先访问自己定义的方法,此方法中拼接获取微信code需要的参数和获取code后跳转的redirect_uri,
例如:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=认证服务号的appid&redirect_uri=微信重定向的地址&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect
在上面的链接中添加appid和redirect_uri即可,redirect_uri可以是非静态路径
此步需要重定向跳转两次,第一次跳转到微信接口中,第二次微信(带code)跳转回用户接口中
2、微信重定向到redirect_uri,在此路径的方法中,$_GET到微信传来的code,拼接到下面的api中:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=认证服务号的appid&secret=认证服务号的appsecret&code=接收到的code&grant_type=authorization_code
请求上面的微信接口,拿到数据,json_decode后会得到access_token和用户openid,
3、把拿到的access_token和openid拼接到下面的api中:
https://api.weixin.qq.com/sns/userinfo?access_token=微信返回的access_token&openid=微信返回的openid&lang=zh_CN
请求上面的微信接口,拿到数据,json_decode后会得到用户在微信中的基本信息
代码为:
第一个方法(页面)中:
$appid = "";
$redirect_uri = "http://xxx.xxx.com/wx_login.php";
$api = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";
header("Location:$api");
微信重定向的方法(页面)中:
Demo下载:
下一篇:PHP分页函数