6

私は現在、Rails 用の JSON API を実装して、Google 認証を必要とする Android モバイル アプリを提供しています。

私が望んでいるフローは、omniauth-google-oauth gem で説明されているように、Google API OAuth2 のワンタイム コード フロー (ハイブリッド認証) です。簡単に言うと、Android アプリは Google アカウントのサーバーからワンタイム コードを取得し、それを Rails API アクションに渡します。Rails API アクションはそれをアクセス トークンに変換し、それを使用してユーザーのプロファイル情報を取得します。

これを念頭に置いて、Rails での Devise omniauth の実装に関して 2 つの質問があります。

  1. Javascript のワンタイム コード クライアント フローの実装は、omniauth-google-oauth gem のドキュメントで既に説明されているようです。ただし、Devise は、ユーザーを新しい登録ページにリダイレクトすることで承認の失敗を処理します。コールバック フェーズには、ドキュメントがない一連のパラメーターが必要です。Devise は JSON API のこのタイプのフローをサポートしていますか? もしそうなら、それはどのように処理されるべきですか?

  2. 以下に示すように、omniauth のコールバック フェーズを開始するある種のトリガーがあることに気付きました。問題は、omniauth の path_prefix を /users/auth/ 以外のものに変更すると、コールバック URL に対して POST 要求を実行しても、これがトリガーされないことです。Devise/Omniauth がこのトリガーに使用する基準は何ですか?

    情報 -- omniauth: (google_oauth2) コールバック フェーズが開始されました。

参考までに、Ruby 2.1.3 と Devise 3.2.4 で Rails 4.1.6 を使用しています。

私はあなたの助けに深く感謝します!

4

0 に答える 0