@@ -44,12 +44,12 @@ trait Send
4444
4545 /**
4646 * redis 对象
47- * @var
47+ * @var
4848 */
4949 public $ redis ;
5050 /**
5151 * 客户端对象
52- * @var
52+ * @var
5353 */
5454 public $ client ;
5555
@@ -69,10 +69,10 @@ trait Send
6969 protected $ appsecret = '' ;
7070 /**
7171 * JWT key
72- * @var string
72+ * @var string
7373 */
7474 public $ key = '' ;
75-
75+
7676 public $ group = 'api ' ;
7777
7878 /**
@@ -198,6 +198,61 @@ public function match($arr = [])
198198 return false ;
199199 }
200200
201+ /**
202+ * token
203+ * @param $memberInfo
204+ * @param $expires
205+ * @return string
206+ */
207+ protected function buildAccessToken ($ memberInfo ,$ expires )
208+ {
209+ $ time = time (); //签发时间
210+ $ expire = $ time + $ expires ; //过期时间
211+ $ scopes = 'role_access ' ;
212+ if ($ expires ==$ this ->refreshExpires ) $ scopes = 'role_refresh ' ;
213+ $ token = array (
214+ "member_id " => $ memberInfo ['member_id ' ],
215+ 'appid ' =>$ this ->appid ,
216+ 'appsecret ' =>$ this ->appsecret ,
217+ "iss " => "funadmin.com " ,//签发组织
218+ "aud " => "funadmin " , //签发作者
219+ "scopes " => $ scopes , //刷新
220+ "iat " => $ time ,
221+ "nbf " => $ time ,
222+ "exp " => $ expire , //过期时间时间戳
223+ );
224+ return JWT ::encode ($ token , $ this ->key , 'HS256 ' );
225+ }
226+
227+ /**
228+ * @param $membername
229+ * @param $password
230+ * @return array|mixed|void
231+ * @throws \think\db\exception\DataNotFoundException
232+ * @throws \think\db\exception\DbException
233+ * @throws \think\db\exception\ModelNotFoundException
234+ */
235+ protected function getMember ($ membername , $ password )
236+ {
237+ $ member = Db::name ($ this ->tableName )
238+ ->where ('status ' ,1 )
239+ ->where ('username ' , $ membername )
240+ ->whereOr ('mobile ' , $ membername )
241+ ->whereOr ('email ' , $ membername )
242+ ->field ('id as member_id,password ' )
243+ ->limit (1 )
244+ ->find ();
245+ if ($ member ) {
246+ if (password_verify ($ password , $ member ['password ' ])) {
247+ unset($ member ['password ' ]);
248+ return $ member ;
249+ } else {
250+ $ this ->error (lang ('Password is not right ' ), [], 401 );
251+ }
252+ } else {
253+ $ this ->error (lang ('Account is not exist ' ), [], 401 );
254+ }
255+ }
201256
202257}
203258
0 commit comments