<?php
// +----------------------------------------------------------------------
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.tensent.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +----------------------------------------------------------------------
declare (strict_types = 1);

namespace app\middleware;

use think\App;
use think\Response;
use leruge\exception\JWTTokenNotFoundException;

class ApiCheck{
	protected $app;

	public function __construct(App $app){
		$this->app = $app;
	}
	
	/**
	 * @title 处理请求
	 *
	 * @param [type] $request
	 * @param \Closure $next
	 * @param [type] $store
	 * @return void
	 */
	public function handle($request, \Closure $next, $store = null){
		try {
			$verify = \leruge\facade\JWT::validate();;
			if (true === $verify) {
				$student = \leruge\facade\JWT::auth();
				if ($student->id) {
					// 路由注入
					$request->student = $student;
				}
				return $next($request);
			}
		} catch (JWTTokenNotFoundException $e) {
			return Response::create(['message' => '未登录或登录过期！', 'code' => 2000], 'json', 401);
		}
	}
}
