1.首先,你要去微信开放平台https://open.weixin.qq.com/,去申请一个网站应用,网站应用是单独的一个应用,和公众号是不同的!
2.申请成功后,在网站应用这里,获取到APPID和SECRET,还要记住我们的回调域名,这里假设回调域名是http://abc.com,如图所示:
3.制作处理扫描二维码后的方法,获取用户信息,假设,下面所示的方法路径是http://abc.com/do_wxlogin
public function doWxLogin(){
$app = new Application([
'app_id' => '你刚才获得的APPID', // AppID
'secret' => '你刚才获得的SECRET',
'oauth' => [ //oauth这里面就写一个scopes就行
'scopes' =>['snsapi_login'],
]
]);
// dd($app);
$user = $app->oauth->user();
//这里可以通过dd($user);打印出来用户所有的信息了
//获取具体信息,可以使用数组的方式
$unionid = $user['original']['unionid'];
$openid = $user['original']['openid'];
//dd("unionid=".$unionid.";openid=".$openid);
//成功拿到用户信息,大功告成
//接下来,就要写你的用户免密码登陆方式了,这里推荐使用Laravel自带的Auth方式登陆用户
//先判断该用户有没有
//1:如果是创建了新用户,可以直接登陆他:
//$user = User::create([用户的各种信息]);
//Auth::login($user);
//2:如果已经有该用户,可以使用login方式
//$user = User::find([id here]);
//通过这种方式找到用户
//Auth::login($user);
// 如果ID是主键,直接这样也可以登陆
// Auth::loginUsingId([id of user]);
}
4.制作前端二维码页面,直接复制即可,注意redirect_uri填的是我们上面这个方法的路径,而且,这个域名必须是你授权回调域下头的域名,假设我的授权回调域是http://abc.com,那么redirect_uri就要填http://abc.com/xxxx
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="qrCode">
</div>
<script src="JQUERY文件的地址,这里改一下"></script>
<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
<script>
var obj = new WxLogin({
id: "qrCode",
appid: "你刚才获取的APPID",
scope: "snsapi_login",
redirect_uri: "你的授权域名里面,处理扫码回调的路径,例如http://abc.com/do_wxlogin",
href: '',
state: "<?php echo time(); ?>",
style:'black',
});
</script>
</body>
</html>
5.制作完成,打开页面,扫码,看看是否拿到了自己的信息吧~