2
2
3
3
namespace App \Http \Controllers \Auth ;
4
4
5
+ use Illuminate \Support \Facades \Log ;
5
6
use App \Http \Controllers \Controller ;
6
7
use App \Models \User ;
7
8
use Illuminate \Support \Facades \Auth ;
@@ -19,18 +20,20 @@ public function callback($provider)
19
20
try {
20
21
21
22
$ socialuser = Socialite::driver ($ provider )->user ();
22
- if (User::where ('email ' , $ socialuser ->email )->first ()->provider != $ provider ) {
23
+ $ potentialUser = User::where ('email ' , $ socialuser ->email )->first ();
24
+ // check if user is already registered
25
+ if ($ potentialUser && $ potentialUser ->provider != $ provider ) {
23
26
return redirect ('/login ' )->withErrors (['email ' => 'Email uses another provider. Please login with ' . User::where ('email ' , $ socialuser ->email )->first ()->provider . ' instead. ' ]);
24
27
}
25
-
28
+
26
29
$ name = $ socialuser ->name ;
27
- if ($ name == null ){
30
+ if ($ name == null ) {
28
31
$ name = $ socialuser ->nickname ;
29
- }
30
- if ($ name == null ){
32
+ }
33
+ if ($ name == null ) {
31
34
$ name = $ socialuser ->username ;
32
35
}
33
- if ($ name == null ){
36
+ if ($ name == null ) {
34
37
$ name = explode ('@ ' , $ socialuser ->email )[0 ];
35
38
}
36
39
$ user = User::updateOrCreate ([
@@ -49,8 +52,9 @@ public function callback($provider)
49
52
50
53
return redirect ('/dashboard ' );
51
54
} catch (\Exception $ e ) {
52
- // log error on console
53
- return redirect ('/login ' );
55
+ // log error on logs
56
+ Log::error ($ e ->getMessage ());
57
+ return redirect ('/login ' );
54
58
}
55
59
56
60
0 commit comments