<?php

include dirname(__FILE__) . '/nocache.php';
include dirname(__FILE__) . '/dbconfig.php';
include dirname(__FILE__) . '/error.php';
include dirname(__FILE__) . '/utils.php';
include dirname(__FILE__) . '/session.php';

function done($token)
{
  $res = [
    'token' => $token
  ];
  header('Content-Type: application/json');
  echo json_encode($res);
}

function check() {
check_session();
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET CHARACTER SET 'utf8'");
$dbh = new PDO(DB_DSN, DB_USER, DB_PASSWORD, $options);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
setTimezone($dbh);

error_reporting(E_ALL & ~E_NOTICE);

$sql = "select token from credential where member_id=:mid and del_flg='0'";
$stmt = $dbh->prepare($sql);
$params = array(':mid' => $_SESSION['member_id']);
$stmt->execute($params);

$result = $stmt->fetch(PDO::FETCH_ASSOC);
if ($result) {
  done($result['token']);
  return;
}

$rnd = random_bytes(20);
$token = rtrim(strtr(base64_encode($rnd), '+/', '-_'), '=');

$sql = "insert into credential (member_id,token,del_flg,ins_log,ins_date) values (:mid,:tok,'0','get_auth_token.php',NOW())";
$stmt = $dbh->prepare($sql);
$params = array(':mid'=>$_SESSION['member_id'],':tok'=>$token);
$stmt->execute($params);

done($token);
}
wrap('check');
