1
1
<?php
2
2
3
+ declare (strict_types=1 );
4
+ /**
5
+ * This file is part of zhuchunshu.
6
+ * @link https://github.com/zhuchunshu
7
+ * @document https://github.com/zhuchunshu/super-forum
8
+ * @contact laravel@88.com
9
+ * @license https://github.com/zhuchunshu/super-forum/blob/master/LICENSE
10
+ */
3
11
namespace App \Plugins \User \src ;
4
12
5
13
use App \Plugins \User \src \Event \AfterLogin ;
14
22
15
23
class Auth
16
24
{
17
-
18
25
public function SignIn (string $ email , string $ password ): bool
19
26
{
20
27
if (! User::query ()->where ('email ' , $ email )->count ()) {
21
28
return false ;
22
29
}
23
30
// 数据库里的密码
24
31
$ user_id = User::query ()->where ('email ' , $ email )->first ()->id ;
25
- $ user = User::query ()->find ($ user_id );
26
-
32
+ $ user = User::query ()->find ($ user_id );
33
+
27
34
if (Hash::check ($ password , $ user ->password )) {
28
35
$ token = Str::random (17 );
29
36
session ()->set ('auth ' , $ token );
30
- if (! (new UserAuth ())->create ($ user ->id ,$ token )){
31
- return false ;
37
+ if (! (new UserAuth ())->create ($ user ->id , $ token )) {
38
+ return false ;
32
39
}
33
- session ()->set ("auth_data " ,User::query ()->where ("id " ,$ this ->id ())->with ("Class " )->first ());
34
- session ()->set ("auth_data_class " ,UserClass::query ()->where ("id " ,auth ()->data ()->class_id )->first ());
35
- session ()->set ("auth_data_options " ,UsersOption::query ()->where ("id " ,auth ()->data ()->options_id )->first ());
36
- EventDispatcher ()->dispatch (new AfterLogin ($ user ));
40
+ EventDispatcher ()->dispatch (new AfterLogin ($ user ));
41
+ return true ;
42
+ }
43
+ return false ;
44
+ }
45
+
46
+ // 刷新登陆
47
+ public function refresh (int $ id ): bool
48
+ {
49
+ if (! User::query ()->where ('id ' , $ id )->count ()) {
50
+ return false ;
51
+ }
52
+ // 数据库里的密码
53
+ $ user = User::query ()->find ($ id );
54
+ $ token = Str::random (17 );
55
+ session ()->set ('auth ' , $ token );
56
+ (new UserAuth ())->create ($ user ->id , $ token );
57
+ EventDispatcher ()->dispatch (new AfterLogin ($ user ));
58
+ return true ;
59
+ }
60
+
61
+ public function SignInUsername (string $ username , string $ password ): bool
62
+ {
63
+ if (! User::query ()->where ('username ' , $ username )->count ()) {
64
+ return false ;
65
+ }
66
+ // 数据库里的密码
67
+ $ user = User::query ()->where ('username ' , $ username )->first ();
68
+ if (Hash::check ($ password , $ user ->password )) {
69
+ $ token = Str::random (17 );
70
+ session ()->set ('auth ' , $ token );
71
+ (new UserAuth ())->create ($ user ->id , $ token );
72
+ EventDispatcher ()->dispatch (new AfterLogin ($ user ));
37
73
return true ;
38
74
}
39
75
return false ;
40
76
}
41
-
42
- // 刷新登陆
43
- public function refresh (int $ id ): bool
44
- {
45
- if (! User::query ()->where ('id ' , $ id )->count ()) {
46
- return false ;
47
- }
48
- // 数据库里的密码
49
- $ user = User::query ()->find ($ id );
50
- $ token = Str::random (17 );
51
- session ()->set ('auth ' , $ token );
52
- (new UserAuth ())->create ($ user ->id ,$ token );
53
- session ()->set ("auth_data " ,User::query ()->where ("id " ,$ this ->id ())->with ("Class " )->first ());
54
- session ()->set ("auth_data_class " ,UserClass::query ()->where ("id " ,auth ()->data ()->class_id )->first ());
55
- session ()->set ("auth_data_options " ,UsersOption::query ()->where ("id " ,auth ()->data ()->options_id )->first ());
56
- EventDispatcher ()->dispatch (new AfterLogin ($ user ));
57
- return true ;
58
- }
59
-
60
- public function SignInUsername (string $ username , string $ password ): bool
61
- {
62
- if (! User::query ()->where ('username ' , $ username )->count ()) {
63
- return false ;
64
- }
65
- // 数据库里的密码
66
- $ user = User::query ()->where ('username ' , $ username )->first ();
67
- if (Hash::check ($ password , $ user ->password )) {
68
- $ token = Str::random (17 );
69
- session ()->set ('auth ' , $ token );
70
- (new UserAuth ())->create ($ user ->id ,$ token );
71
- session ()->set ("auth_data " ,User::query ()->where ("id " ,$ this ->id ())->with ("Class " )->first ());
72
- session ()->set ("auth_data_class " ,UserClass::query ()->where ("id " ,auth ()->data ()->class_id )->first ());
73
- session ()->set ("auth_data_options " ,UsersOption::query ()->where ("id " ,auth ()->data ()->options_id )->first ());
74
- EventDispatcher ()->dispatch (new AfterLogin ($ user ));
75
- return true ;
76
- }
77
- return false ;
78
- }
79
77
80
- public function token (){
81
- if ($ this ->check ()===true ){
82
- return session ()->get ("auth " ,null );
78
+ public function token ()
79
+ {
80
+ if ($ this ->check () === true ) {
81
+ return session ()->get ('auth ' , null );
83
82
}
84
83
return null ;
85
84
}
86
85
87
86
public function logout (): bool
88
87
{
89
- EventDispatcher ()->dispatch (new Logout ($ this ->id ()));
88
+ EventDispatcher ()->dispatch (new Logout ($ this ->id ()));
90
89
(new UserAuth ())->destroy_token (session ()->get ('auth ' ));
91
90
session ()->remove ('auth ' );
92
- session ()->remove ('auth_data_class ' );
93
- session ()->remove ('auth_data_options ' );
94
- session ()->remove ('auth_data ' );
95
91
return true ;
96
92
}
97
93
98
- public function data ()
94
+ public function data (): \ Hyperf \ Database \ Model \ Collection | \ Hyperf \ Database \ Model \ Model | array | \ Hyperf \ Database \ Model \ Builder | null
99
95
{
100
- if (!session ()->has ("auth_data " )){
101
- session ()->set ("auth_data " ,User::query ()->where ("id " ,$ this ->id ())->with ("Class " )->first ());
102
- }
103
- return session ()->get ("auth_data " );
96
+ return User::query ()->find ($ this ->id ());
104
97
}
105
98
106
- public function Class (){
107
- if (!session ()->has ("auth_data_class " )){
108
- session ()->set ("auth_data_class " ,UserClass::query ()->where ("id " ,auth ()->data ()->class_id )->first ());
109
- }
110
- return session ()->get ("auth_data_class " );
111
- }
112
-
113
- public function Options (){
114
- if (!session ()->has ("auth_data_options " )){
115
- session ()->set ("auth_data_options " ,UsersOption::query ()->where ("id " ,auth ()->data ()->options_id )->first ());
116
- }
117
- return session ()->get ("auth_data_options " );
99
+ public function Class (): \Hyperf \Database \Model \Model |\Hyperf \Database \Model \Builder |null
100
+ {
101
+ return UserClass::query ()->where ('id ' , auth ()->data ()->class_id )->first ();
118
102
}
119
103
120
- public function UpdateClass (){
121
- session ()->set ("auth_data_class " ,UserClass::query ()->where ("id " ,auth ()->data ()->class_id )->first ());
104
+ public function Options (): \Hyperf \Database \Model \Model |\Hyperf \Database \Model \Builder |null
105
+ {
106
+ return UsersOption::query ()->where ('id ' , auth ()->data ()->options_id )->first ();
122
107
}
123
108
124
- public function UpdateOptions (){
125
- session ()->set ("auth_data_options " ,UsersOption::query ()->where ("id " ,auth ()->data ()->options_id )->first ());
126
- }
127
109
110
+ /**
111
+ * get user id.
112
+ * @return int
113
+ */
128
114
public function id ()
129
115
{
130
- return (int )@UsersAuth::query ()->where (" token " , session ()->get ('auth ' ))->first ('user_id ' )->user_id ;
116
+ return (int ) @UsersAuth::query ()->where (' token ' , session ()->get ('auth ' ))->first ('user_id ' )->user_id ;
131
117
}
132
118
119
+ /**
120
+ * check is login.
121
+ */
133
122
public function check (): bool
134
123
{
135
- if (! session ()->has ('auth ' )){
124
+ if (! session ()->has ('auth ' )) {
136
125
return false ;
137
126
}
138
- if (User::query ()->where (" id " , $ this ->id ())->count ()){
127
+ if (User::query ()->where (' id ' , $ this ->id ())->count ()) {
139
128
return true ;
140
129
}
141
130
142
131
return false ;
143
132
}
144
- }
133
+ }
0 commit comments