laravel+easywechat微信扫码登录网站

微信扫码登录原理图:

1、首先要在微信开放平台上面申请网站应用,必须审核通过后获取到appid和appsecret(注意开放平台与公众平台上的appid和appsecret是不一样的),微信登录二维码生成方式如下;

<html><head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title></head><body><div id="qrCode"></div><script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script><script>window.οnlοad=function(){var obj = new WxLogin({id: "qrCode",appid: "",scope: "snsapi_login",redirect_uri: "",href: '',state: "<?php echo time(); ?>"});}</script></body></html>

2、在你需要微信登录的页面里面引入<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>,然后在需要微信登录的地址实例化以下js代码;

var obj = new WxLogin({

id:"放置二维码的地方容器id",

appid: "开放平台上审核通过的网站应用appid",

scope: "",

redirect_uri: "用户授权后跳转的地址",

state: "防止跨域",

style: "",

href: ""

});

3、在你设置的用户跳转地址对应的服务器端使用composer安装完easywechat(下载地址:https://easywechat.org/)后,引入并初始化开放平台信息,例如:appid和appsecret,代码如下:

https://open.weixin.qq.com/connect/qrconnect //微信端授权地址,该授权地址是浏览器端js轮询进行请求的

下面是回调地址里面对应的代码,也就是(2)中参数【redirect_uri: "用户授权后跳转的地址"】

use EasyWeChat\Foundation\Application;$app = new Application(['debug' => false,'app_id' => env('WEIXINWEB_KEY'),'secret' => env('WEIXINWEB_SECRET'),'oauth' => ['scopes'  =>['snsapi_login'],'callback'  => env('WEIXINWEB_REDIRECT_URI'),]]);$app->oauth->user()

$app->oauth->user()  //获取的是授权后的用户信息

上面代码后进行一些列逻辑处理之后,若授权成功,则跳转到你登录后的页面,反之,则不能

上述代码中的参数'callback' => env('WEIXINWEB_REDIRECT_URI'),该地址确定你是否在微信端扫码后是否进行了授权。

(0)

相关推荐