/** * OpenID プロバイダからコールバックされたパラメータを元 Mars_OpenID のオブジェクトインスタンスを生成します。 * * @return Mars_OpenID Mars_OpenID のオブジェクトインスタンスを返します。 * インスタンスの生成に失敗した (OpenID プロバイダからリクエストされたパラメータが不正、または存在しない) 場合は FALSE を返します。 * @author Naomichi Yamakita <*****@*****.**> */ public static function createFromRequest() { $request = Mars_DIContainerFactory::getContainer()->getRequest(); $provider = $request->getPathInfo('_openId.provider'); if (null_or_empty($provider)) { return FALSE; } try { $instance = self::create($provider); if (!$instance->receiveData()) { return FALSE; } } catch (Mars_UnsupportedException $e) { return FALSE; } return $instance; }
/** * 3-legged OAuth プロバイダからコールバックされたパラメータを元に {@link Mars_OAuthProvider} を実装したクラスのオブジェクトインスタンスを生成します。 * (2-legged OAuth プロバイダで当メソッドを使用することはできません) * * @return Mars_OAuthProvider {@link Mars_OAuthProvider} を実装したクラスのオブジェクトインスタンスを返します。 * インスタンスの生成に失敗した (OAuth プロバイダからリクエストされたパラメータが不正、または存在しない) 場合は FALSE を返します。 * @throws Mars_RequestException パラメータが不正な場合に発生。 * @author Naomichi Yamakita <*****@*****.**> */ public static function createFromRequest() { // Twitter、facebook は PATH_INFO 形式、mixi は GET 形式で 'state' パラメータを返す // (mixi は 'state' パラメータ固定) $request = Mars_DIContainerFactory::getContainer()->getRequest(); $provider = $request->getParameter('state'); if (null_or_empty($provider)) { return FALSE; } try { $instance = self::create($provider); $instance->parseAccessToken(); } catch (Mars_UnsupportedException $e) { return FALSE; } return $instance; }
/** * 画像や Flash データへのリダイレクトを行います。 * * @param string $path リダイレクト先のコンテンツファイル。'webroot' からの相対パスを指定します。 * @param bool $signed TRUE を指定した場合、リクエストの妥当性を検証するための OAuth Signature が追加されます。 * @author Naomichi Yamakita <*****@*****.**> * @link http://developer.mixi.co.jp/appli/spec/mob/for_partners/images_and_flash 画像や Flash 等の表示について */ public static function sendRedirectMedia($path, $signed = FALSE) { if (substr($path, 0, 1) !== '/') { $path = '/' . $path; } $queryData = array(); if ($signed) { $queryData['signed'] = 1; } $extra = array(); $extra['query'] = $queryData; $extra['absolute'] = TRUE; $path = Mars_HTMLHelper::buildAssetPath($path, 'image', $extra); $queryData = array(); $queryData['url'] = $path; $uri = self::getContentsURI() . self::buildQueryString($queryData); Mars_DIContainerFactory::getContainer()->getResponse()->sendRedirect($uri); }