<?php

namespace app\manystoreapi\controller;

use app\common\controller\ManystoreApiBase;
use fast\Random;

/**
 * 机构API后台：Token接口
 */
class Token extends ManystoreApiBase
{
    protected $noNeedLogin = [];
    protected $noNeedRight = '*';

    /**
     * 检测Token是否过期
     *
     */
    public function check()
    {
        $token = $this->auth->getToken();
//        $tokenInfo = \app\common\library\Token::get($token);
        $tokenInfo = \app\common\library\Token::init($this->auth->init_data)->get($token);
        $this->apisuccess('', ['token' => $tokenInfo['token'], 'expires_in' => $tokenInfo['expires_in']]);
    }

    /**
     * 刷新Token
     *
     */
    public function refresh()
    {
        //删除源Token
        $token = $this->auth->getToken();
        \app\common\library\Token::init($this->auth->init_data)->delete($token);
        //创建新Token
        $token = Random::uuid();
        \app\common\library\Token::init($this->auth->init_data)->set($token, $this->auth->id, 2592000);
        $tokenInfo = \app\common\library\Token::init($this->auth->init_data)->get($token);
        $this->apisuccess('', ['token' => $tokenInfo['token'], 'expires_in' => $tokenInfo['expires_in']]);
    }
}
