|
大环境 laravel 5.8 tymon/jwt-auth 1.0
- <?php
-
- namespace App\Http\Middleware;
-
- use Closure;
- use Illuminate\Support\Facades\Auth;
- use Tymon\JWTAuth\Facades\JWTAuth;
- use Tymon\JWTAuth\Exceptions\TokenExpiredException;
- use Tymon\JWTAuth\Exceptions\JWTException;
- class MyJwt
- {
- /**
- *
- * Handle an incoming request.
- *
- * @param \Illuminate\Http\Request $request
- * @param \Closure $next
- * @return mixed
- */
- public function handle($request, Closure $next)
- {
- $token = $request->header('token');
- $request->headers->set('Accept', 'application/json' );
- $request->headers->set('Authorization', 'Bearer ' .$token);
- $request->headers->set('content-type', 'application/x-www-form-urlencoded');
-
- if($request->getMethod() == "OPTIONS") {
- return Response::make('OK', 200, $headers);
- }
-
- try {
- if(! $user = JWTAuth::parseToken()->authenticate()){
- return response()->json([
- 'errcode' => 400001,
- 'errmsg' => '无此用户'
- ], 404);
- }
-
- } catch (TokenExpiredException $e) {
- return response()->json([
- 'errcode' => 400001,
- 'errmsg' => 'token 过期'
- ]);
- } catch (TokenInvalidException $e) {
- return response()->json([
- 'errcode' => 400001,
- 'errmsg' => '无效的token'
- ]);
- } catch (JWTException $e) {
- // return response()->json(['token_absent'], $e->getStatusCode()); // 不存在
- return response()->json([
- 'errcode' => 400001,
- 'errmsg' => 'token不存在'
- ]);
- }
-
-
- // return response()->json(compact('user')); 这个是结果值,是轻求到的数据,可以放在 $request 中往后继续带
- $headersData = response()->json(compact('user'));
-
- $request->attributes->add(['userinfo'=>$headersData->original['user'] ]);
-
- return $next($request);
- // 下面采集自另外一个地方,其实也可以正常用
- // try {
- // if (!$user = JWTAuth::toUser(JWTAuth::getToken())){
- // return response()->json([
- // 'errcode' => 400004,
- // 'errmsg' => '无此用户'
- // ], 404);
- // }
-
- // } catch (TokenExpiredException $e) {
-
- // return response()->json([
- // 'errcode' => 400001,
- // 'errmsg' => 'token 过期'
- // ]);
-
- // } catch (TokenInvalidException $e) {
-
- // return response()->json([
- // 'errcode' => 400003,
- // 'errmsg' => 'token 失效'
- // ]);
-
- // } catch (JWTException $e) {
-
- // return response()->json([
- // 'errcode' => 400002,
- // 'errmsg' => 'token 参数错误'
- // ]);
-
- // }
- // $headersData = response()->json(compact('user'));
-
- // $request->attributes->add(['userinfo'=>$headersData->original['user'] ]);
-
- // return $next($request);
-
- }
-
- }
复制代码
|
|