<?php
/*
 * @Author: witersen
 * @Date: 2022-04-24 23:37:05
 * @LastEditors: witersen
 * @LastEditTime: 2022-04-26 16:56:02
 * @Description: QQ:1801168257
 */

class blacktoken extends controller
{
    function __construct()
    {
        /*
         * 避免子类的构造函数覆盖父类的构造函数
         */
        parent::__construct();

        /*
         * 其它自定义操作
         */
    }

    /**
     * 将token加入黑名单
     */
    function BlackToken()
    {
        $arr = explode('.', $this->token);
        $this->database->insert('black_token', [
            'token' => $this->token,
            'start_time' => $arr[2],
            'end_time' => $arr[3],
            'insert_time' => date('Y-m-d H:i:s')
        ]);
    }

    /**
     * 扫描黑名单中的token 发现过期的则删除
     * 
     * 目的:不给搜索增加压力
     */
    function CleanBlack()
    {
        $this->database->delete('black_token', [
            'end_time[<]' => time()
        ]);
    }

    /**
     * 检查token是否存在于黑名单
     */
    function CheckBlack()
    {
        $result = $this->database->get('black_token', [
            'token_id'
        ], [
            'token' => $this->token
        ]);
        if ($result != null) {
            FunMessageExit(401, 0, 'token已注销');
        }
    }
}