首页
|
文档
微信登录
wxLogin使用文档
2024-05-22 16:22:25
目录
#custom-toc-container
# 使用说明 ### wxLogin登录使用非常简单,流程如下: 1.扫码登录wxLogin 2.创建一个网站 3.获得appid和key密钥 5.在自己的网站中添加按钮跳转到授权url 6.用户登录成功后会返回到指定的网站回调地址并携带加密的GET数据`data` 7.开发者接收到加密信息解密后就获得了用户资料包含openid等信息 8.登录完成,判断登录储存等 # 登录地址 ### PC扫码登录地址 `https://wxlogin.com/connect?appid=你的appid` 适用于PC网站,跳转到二维码登录界面,用户扫码登录后,会返回data数据到后台配置的PC返回地址 ### H5登录地址 `https://wxlogin.com/connecth5?appid=你的appid` 适用于微信h5网页 ,无需扫码,授权登录后会返回后台配置的h5返回地址 ### 请求参数 | 参数 | 说明 | | ------------ | ------------ | | appid | 应用id | | scope | snsapi_userinfo 或 snsapi_base | | tpl | 扫码页面风格ID, 默认是1,可选2,3 scope参数说明: - `snsapi_userinfo` 需要用户点击授权按钮,可获得用户昵称和头像 - `snsapi_base` 静默登录只获取openid # 返回数据 ### 登录成功后返回加密的数据 > 例子:后台网站设置的PC返回地址为:https://note.5811.cn/main/return ``` https://note.5811.cn/main/return?data=ZnpONXZkUlZDcEpIR0o3MWRSczQyL3FIMXo3Vks4dlpKYVNQYklVSHV0TW8vMTY3aTBlTTBGRUlNNExjR3p0MHJLWENOR2pYR0x6cXVwZnIrOFV3KzFINlloSWZoSlpCcHJ1cWZuYTRoSU03WWhKSlJxaW93Nm91anZ5RytUOHVCMk1vVFg5VnJ1dEZaU2xQb2NmQTIrM1hHNlI3dTdZbDFvRWZJY2FzN3pHOVBNY1VzY2M3Yi9HelRBcThZaWIyblNUUUkyVzF2bEMyd2pWcm5FbGxtK0RjL2IzWHpZLzhhOUN6YjVGcmlxczJzaERnVkpRVkUzZWdrL2VGTUVkVk5WbHF2SGhzUEY3djgydnA0SHRLNnFaVktEaDBTZFVWNWJqYTFKdUdXUVlHSkdhV01SbzhPY25WYTlzUVRDdFRxenhUMzNmbGJBc2g0OE0rd29BRUNuekM2WjRvaHVBeFVJNlNPSUlDeU9CRGk0anh1bGJjVm13V0xWOUdISzVIZ0xDVDBzUmxBZStOZlN6cDdGdUVzUT09Ojr9%2FCJqXNavaKICCUDgc6XJ ``` ### 解密后得到json > 接收 data 数据,配合应用ke解密得到下面的内容 ``` { "appid":"wx8888888888", "openid":"AZf_FAVqS84myGfwQOuq6oIZZQIv5bU7171580072", "nickname":"\u66f9\u30485811", "headimgurl":"https:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/MxXpDuNtp3LfUlwUM54EicPoV3XahzZzdnWicOQo3Nw93mlPmgHrXxbdZWdBROibXicL4yg2viaZp842DMVoZB6jHEyIa3b9ee46xf8iaItypib0g8\/132", "sex":"0" } ``` ### 解密参数说明 | 参数 | 说明 | | ------------ | ------------ | | appid | 应用id | | openid | 用户的openid | |nickname | 微信昵称 | |headimgurl | 微信头像| |sex|性别| # php 解密 ### 简单解密 > 返回的地址执行下面的代码就可以获得用户资料了 ``` $encrypted = $_GET['data']; $encryption_key = "网站key密钥"; $parts = explode('::', base64_decode(urldecode($encrypted))); $decrypted = openssl_decrypt($parts[0], 'aes-256-cbc', $encryption_key, 0, $parts[1]); $userinfo = json_decode($decrypted,true); print_r($userinfo); ``` `$userinfo` 就是用户资料的数组 ### 封装函数 ``` // 解密 两个参数:加密数据,应用密钥 function getBase($encrypted,$encryption_key){ // 从加密数据中分离出IV $parts = explode('::', base64_decode(urldecode($encrypted))); $decrypted = openssl_decrypt($parts[0], 'aes-256-cbc', $encryption_key, 0, $parts[1]); return json_decode($decrypted,true); } ``` ** 使用方法 ** ``` $data = $GET['data']; $r = getBase(urlencode($data),'123qwe456wer4567123qwe456wer4567'); ``` > $r 就是最终的用户数据