<?php
namespace App\Http\Controllers\Oauth;
use Curl\Curl;
use App\Http\Controllers\Controller;
/**
* Class OauthController
* @author <fl140125@gmail.com>
* @package App\Http\Controllers\Oauth
*/
class OAuthController extends Controller
{
public $state;
protected $curl;
public function __construct()
{
$this->curl = new Curl();
$this->curl->setHeader(
"User-Agent",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"
);
}
public function getState(int $length = 32)
{
$this->state = substr(md5(getRoundNum($length ,'all').time().uniqid()), 0, $length);
return $this->state;
}
public function checkState($storeState, $state)
{
return $storeState === $state;
}
public function json($data)
{
return json_decode(str_replace(['callback','(',')',';'], '', $data), true);
}
public function error($code, $message)
{
return array('code' => $code, 'message' => $message);
}
public function __getAccessToken($data)
{
$queryParts = explode('&', $data);
$paramsArr = array();
foreach ($queryParts as $param) {
$item = explode('=', $param);
if (is_array($item) && count($item) > 0) {
$paramsArr[$item[0]] = $item[1];
}
}
return $paramsArr;
}
}