1. 给当前域名设置授权
在网页服务->网页帐号->网页授权获取用户基本信息
#routes.php文件添加
Route::get('/login' , 'UserController@login');
Route::get('/center' , 'UserController@center');
Route::get('/logout' , 'UserController@logout');//没什么实质作用,只是为了测试
2.利用artisan生成UserController
php artisan make:controller UserController
//代码如下:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use EasyWeChat\Foundation\Application;
class UserController extends Controller
{
protected $app = null;
public function __construct(){
$options = [
'debug' => true,
'app_id' => 'wx98a867f4654d1aa9',
'secret' => '9d89db74740a83d1f15e552e5bce3f74',
'token' => 'erwpsjeinnv3jk',
// 'aes_key' => null, // 可选
'log' => [
'level' => 'debug',
'file' => 'd:/phpstudy1/www/weixin/public/wechat.log', // XXX: 绝对路径!!!!
],
'oauth' => [
'scopes' => ['snsapi_userinfo'],
'callback' => 'login',//不存在session重定向的页面
],
//...
];
//创建应用
$this->app = new Application($options);
}
public function login(){
$oauth = $this->app->oauth;
// 获取 OAuth 授权结果用户信息
$user = $oauth->user();
session()->put('user',$user->toArray());//将用户授权信息付给user存入session
return redirect('center');//跳转到center页面
}
public function center(Request $req){
if(!$req->session()->has('user')){//如果没有session,跳转到login页面进行授权
$oauth = $this->app->oauth;
return $oauth->redirect();
}
return 'hello ,user';
}
public function logout(){
session()->forget('user');//删除user
}
}
如果报了redirect_url错误,查看错误http://www.35cehua.com/seo/1810.html
3. 验证:
- 在微信公众号输入
6ebc982a.ittun.com/center
,点击连接会读条两次出现hello ,user。(走了login重定向) - 再退出来,再点击链接读条一次显示一样内容(存在session未重定向)
- 输入
6ebc982a.ittun.com/logout
,点击(清空session('user')),退出来再点击6ebc982a.ittun.com/center,又是读条两次 - 成功