/** * Este método será utilizado para cria token's. * * @param array $data Esta é a lista de dados a serem embutidos dentro do token. * @param array $crypt Esta é a lista de dados que devem ser criptografados. * @return string Este é o Token gerado. */ public static function encode(array $data, array $crypt = []) { foreach ($crypt as $key) { $data[$key] = Ao_Password::crypt($data[$key]); } $data['time'] = time(); $data['host'] = filter_input(INPUT_SERVER, 'HTTP_HOST'); $data['signature'] = Ao_Signature::get($data, KA_APP_KEY_SECRET); return base64_encode(self::mess(json_encode($data))); }
public function getTokenAccess($key, $secret, $authorization, $verifier) { # define destino da requisição $this->http->setUri($this->host . '/oauth/token'); # prepara parâmetros da requisição $data = ['oauth_consumer_key' => $key, 'oauth_timestamp' => time(), 'oauth_nonce' => '', 'oauth_token' => $authorization, 'oauth_verifier' => $verifier, 'oauth_signature_method' => 'HMAC-SHA512']; $data['oauth_signature'] = Ao_Signature::get($data, $secret); # monta requisição $this->http->setMethod('POST')->setParameterPost($data); # faz requisição try { $body = $this->http->request()->getBody(); } catch (Exception $e) { throw new Exception('<b>Falha inesperada</b> ao tentar solicitar o Token de Acesso.'); } # converte "json" $token = json_decode($body); if (empty($token)) { throw new Exception($body); } # retorna "Token de Acesso" return $token->oauth_token; }