短い形式の質問: 管理領域のMagentoでGoogleApiOAuth2認証を実装するための最もクリーンな方法は何ですか
長い形式の質問: すべての新しいGoogleAPIはOAuth2を使用しています。phpクライアントライブラリはここにあり、OAuth2処理を抽象化し ますhttps://code.google.com/p/google-api-php-client/
プロセスは簡単です
- ユーザーはAccessTokenを持っていますか?
- いいえ
- クライアントライブラリを使用してログインURLを作成します
- ユーザーがログインURLリンクをクリックすると、Googleにログインできます。
- 認証されると、Googleは指定されたリダイレクトURLを介してMagentoにリダイレクトします
- GoogleはURLの一部としてAccessTokenを送り返します。保管してください。
- このAccessTokenを使用してさまざまなAPIを呼び出します
クライアントライブラリの例はすべてフラットファイルです。だから私はそれをMVC構造に適合させるための最良の方法を探しています...正確にはMagentoです。
具体的にしましょう。Googleの連絡先を取得します。これまでのところ:
- インデックスアクションを持つContactsControllerと呼ばれる管理コントローラー。最初に行うことは、アクセストークンがあるかどうかを確認することです。アクセストークンがない場合は、認証アクションに転送されます。
- authアクションは、google phpクライアントライブラリ「createAuthUrl()」によって生成されたAuthUrlを持つブロックをレンダリングするだけです。
- リンクをクリックすると、グーグルのログインページが読み込まれ、ログインします
- Googleは、コードで指定したURL(およびGoogle APIコンソールhttps://code.google.com/apis/console)にリダイレクトします。また、Accessトークンを返します。このURLは予測可能である必要があるため、管理領域のURLにすることはできません。これらは、「キー」URLパラメーターに依存しているためです。したがって、Googleがリダイレクトするフロントエンドコントローラーとアクションを作成しました。
- フロントエンドコントローラーにAccessTokenを保存します。
- 次に、管理コントローラーのContactsControllerインデックスアクションにリダイレクトします。AccessTokenを認識し、アプリケーションは実際にいくつかのことを実行できます。
私が抱えている問題は、その最終的なリダイレクトを実行できないことです。'key' urlパラメーターを追加するadminhtmlヘルパーgetUrlメソッドを使用していますが、フロントエンドからバックエンドにリダイレクトすると、ダッシュボードにキックされます。
MagentoでGoogleのOAuth2を実装するためのより良い方法はありますか?
直接管理URLにリダイレクトするにはどうすればよいですか?