Gdn_Authenticator::createToken PHP Method

createToken() public method

public createToken ( $TokenType, $ProviderKey, null $UserKey = null, boolean $Authorized = false ) : array | boolean
$TokenType
$ProviderKey
$UserKey null
$Authorized boolean
return array | boolean
    public function createToken($TokenType, $ProviderKey, $UserKey = null, $Authorized = false)
    {
        $TokenKey = implode('.', array('token', $ProviderKey, time(), mt_rand(0, 100000)));
        $TokenSecret = sha1(md5(implode('.', array($TokenKey, mt_rand(0, 100000)))));
        $Timestamp = time();
        $Lifetime = Gdn::config('Garden.Authenticators.handshake.TokenLifetime', 60);
        if ($Lifetime == 0 && $TokenType == 'request') {
            $Lifetime = 300;
        }
        $InsertArray = array('Token' => $TokenKey, 'TokenSecret' => $TokenSecret, 'TokenType' => $TokenType, 'ProviderKey' => $ProviderKey, 'Lifetime' => $Lifetime, 'Authorized' => $Authorized, 'ForeignUserKey' => null);
        if ($UserKey !== null) {
            $InsertArray['ForeignUserKey'] = $UserKey;
        }
        try {
            Gdn::sql()->set('Timestamp', 'NOW()', false)->insert('UserAuthenticationToken', $InsertArray);
            if ($TokenType == 'access' && !is_null($UserKey)) {
                $this->deleteToken($ProviderKey, $UserKey, 'request');
            }
        } catch (Exception $e) {
            return false;
        }
        return $InsertArray;
    }