Skip to content

Commit 5903772

Browse files
committed
Add Event.
1 parent 5085da8 commit 5903772

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?php
2+
3+
namespace Overtrue\LaravelWechat\Events;
4+
5+
use App\Events\Event;
6+
use Overtrue\Socialite\User;
7+
use Illuminate\Queue\SerializesModels;
8+
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
9+
10+
class WeChatUserAuthorized extends Event
11+
{
12+
use SerializesModels;
13+
14+
public $user;
15+
public $isNewSession;
16+
17+
/**
18+
* Create a new event instance.
19+
*
20+
* @param \Overtrue\Socialite\User $user
21+
* @param bool $isNewSession
22+
*
23+
* @return void
24+
*/
25+
public function __construct(User $user, $isNewSession = false)
26+
{
27+
$this->user = $user;
28+
$this->isNewSession = $isNewSession;
29+
}
30+
31+
/**
32+
* Retrieve the authorized user.
33+
*
34+
* @return \Overtrue\Socialite\User
35+
*/
36+
public function getUser()
37+
{
38+
return $this->user;
39+
}
40+
41+
/**
42+
* Check the user session is first created.
43+
*
44+
* @return bool
45+
*/
46+
public function isNewSession()
47+
{
48+
return $this->isNewSession;
49+
}
50+
51+
/**
52+
* Get the channels the event should be broadcast on.
53+
*
54+
* @return array
55+
*/
56+
public function broadcastOn()
57+
{
58+
return [];
59+
}
60+
}

src/Middleware/OAuthAuthenticate.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
namespace Overtrue\LaravelWechat\Middleware;
44

55
use Closure;
6+
use Event;
7+
use Overtrue\LaravelWechat\Events\WeChatUserAuthorized;
68

79
/**
810
* Class OAuthAuthenticate
@@ -21,9 +23,12 @@ public function handle($request, Closure $next, $guard = null)
2123
{
2224
$wechat = app('EasyWeChat\\Foundation\\Application', [config('wechat')]);
2325

26+
$isNewSession = false;
27+
2428
if (!session('wechat.oauth_user')) {
2529
if ($request->has('state') && $request->has('code')) {
2630
session(['wechat.oauth_user' => $wechat->oauth->user()]);
31+
$isNewSession = true;
2732

2833
return redirect()->to($this->getTargetUrl($request));
2934
}
@@ -37,6 +42,8 @@ public function handle($request, Closure $next, $guard = null)
3742
return $wechat->oauth->scopes($scopes)->redirect($request->fullUrl());
3843
}
3944

45+
Event::fire(new WeChatUserAuthorized(session('wechat.oauth_user'), $isNewSession));
46+
4047
return $next($request);
4148
}
4249

0 commit comments

Comments
 (0)