<?php

/**
 * +----------------------------------------------------------------------
 * | Created By PhpStorm
 * +----------------------------------------------------------------------
 * | DATE: 2021/8/2
 * +----------------------------------------------------------------------
 * | TIME: 10:25
 * +----------------------------------------------------------------------
 * | Author: YangXing(925032253@qq.com)
 * +----------------------------------------------------------------------
 * | Class: login
 * +----------------------------------------------------------------------
 */

namespace api\action\v1;


use api\action\baseAction;
use servers\jwt\jwt;

class loginAction extends baseAction
{

    public function index()
    {
        try{
            $param = $this->getParaam();
            $user = md5($param['AccessKeyId']);
            $pass = md5($param['AccessKeySecret']);

            $userInfo = \mvc::$cfg['InterfaceUserInformation'];
            $isLogin = false;
            foreach ($userInfo as $value)
            {
                if($user == md5($value['AccessKeyId']) && $pass == md5($value['AccessKeySecret']))
                {
                    $isLogin = true;
                    break;
                }
            }


            if($isLogin)
            {
                $accessToken = [
                    'scopes' => 'gsp_api_access',
                    'exp' => time() + (86400 * 30),
                    'iss' => $user,
                    'iat' => time(),
                    'sub' => $_SERVER['REMOTE_ADDR'],
                    'jti' => md5(uniqid('JWT').time()),
                ];
                //正确返回,token
                $this->returnJson(200,"ok",[
                    'token' => jwt::getToken($accessToken),
                    'exp' => $accessToken['exp'],
                    'sub' => $accessToken['sub']
                ]);
            }
            else
            {
                $this->returnJson(0,'授权失败，无效的证书请求');
            }
        }catch (\Throwable $e){
            //TODO 记录日志
            //'授权失败，异常错误'
            $this->returnJson(0,$e->getMessage());
        }
    }
}
