<?php
namespace app\adminVue\controller;

use app\BaseController;
use think\facade\Db;
use think\facade\Cache;
use think\facade\Session;
use think\facade\View;
use think\facade\Request;

class TokenCheck extends BaseController
{
    //登录Token是否有效校验
    public function initialize(){
        $controller = request()->controller();
        $action = request()->action();
        if($controller!='user'&&$action!='login'){
            $header = getallheaders();
            if(isset($header['Token'])){
                $token = $header['Token']; 
                $admin = Cache::get('TokenInfo'.$token);
                if(!$admin){
                    $admin = Db::name('admin_user')->where('status',1)->where('token',$token)->find();
                    if($admin){
                        $dpt_info = Db::name('admin_org')->column('title','id');
                        $admin['dpt_name'] = $dpt_info[$admin['dpt']];
                        $admin['job_name'] = $admin['job']>0?$dpt_info[$admin['job']]:'未设置';
                        $admin['roles'] = Db::name('admin_rights')->where('id',$admin['rightid'])->value('vue_right');
                        Cache::set('TokenInfo'.$token, $admin);
                    }else{
                        http_response_code(470);
                        exit(json_encode(array('msg'=>'Token失效，请重新登录！')));
                    }
                }
                session('admin',$admin);
                // print_r(session('admin'));die;
            }else{
                http_response_code(470);
                exit(json_encode(array('msg'=>'Token失效，请重新登录！')));
            }
        }
    }
}