微信开放平台扫码登录获取用户基本信息!附可用demo

微信开放平台提供了网站扫码登录的接口,用于获取用户基本信息(头像,昵称)方便网站快速接入微信登录,快捷登录。需要使用登录接口,需要成为微信开放平台认证开发者(300元)才可以获得这个接口权限。

准备工作:

1、准备APPID、APPSECRET
2、准备接口地址
3、准备REDIRECT_URI

获取code接口

https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

获取acess_token、openid接口

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

获取用户信息接口:

https://api.weixin.qq.com/sns/userinfo?access_token=access_token&openid=openid

流程:

1、获取CODE
2、获取access_token、openid
3、获取用户信息

操作:

1、请求CODE

参数说明

微信开放平台扫码登录获取用户基本信息!附可用demo_第1张图片

通过接口地址,拼接以上参数进行访问即可

https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=这里填写redirect_uri&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

redirect_uri说明
这是点击上面地址扫码后跳转的地址,跳转的地址回给你带上两个参数,code和state参数。

state说明
用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验。

可以自己生成随机字符串,为了简单学习,我这里用时间戳进行MD5加密简单生成

例如你的redirect_uri是http://www.baidu.com/login.php,那么扫码后,跳转的地址会是这样的。

http://www.baidu.com/login.php?code=生成的code&state=生成的state

当然redirect_uri需要进行urlEncode编码。

最终获取CODE的访问链接就是这样的:

location.href=\"https://open.weixin.qq.com/connect/qrconnect?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_login&state=$state#wechat_redirect\";";
?>

然后就跳转到了一个扫码的页面了:

微信开放平台扫码登录获取用户基本信息!附可用demo_第2张图片

2、获取access_token和openid

通过curl向接口发起请求即可

3、获取用户信息

";
echo "

$nickname

"; ?>

完整代码

code.php

location.href=\"https://open.weixin.qq.com/connect/qrconnect?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_login&state=$state#wechat_redirect\";";

?>

login.php




    登录成功!
    






登录失效,请重新扫码登录

"; echo "

登录

"; }else{ echo "

"; echo "

$nickname

"; echo "

登录成功

"; } ?>

DEMO:点击查看

时间:2018-1-26
作者:TANKING
网站:https://likeyunba.com
学习交流微信:face6009

你可能感兴趣的:(php,微信开放平台,扫码登录,登录,微信开发)