0

モバイル開発者が iPhone アプリに使用するためのサーバー API を構築しています。私はモバイル開発の経験がなく、彼らは Ruby on Rails の経験がありません。ユーザーが Facebook 経由でログインできるアプリのモバイル認証ルートを構築しようとしました。これまでのところ、次のようになります。

GET '/auth/mobile/fbtoken=:facebook_token&device_id=:device_id&time_zone=:time_zone&os_type=:os_type', to: 'sessions#fb_sso'

  client = OAuth2::Client.new(
  ENV['FACEBOOK_APP_ID'],
  ENV['FACEBOOK_APP_SECRET'],
  site: 'https://graph.facebook.com')
  token = OAuth2::AccessToken.new(client, params[:access_token])
  user_info = ActiveSupport::JSON.decode(token.get('/me').body)  

これを適切に行う方法を学習するためのオンライン リソースは非常に限られているか、存在しません。これを行う方法について私が見つけた唯一の情報は、認証にDeviseを使用することです。私たちのアプリは現在、Devise に対応しています (Devise が追加され、User モデルに移行されています) が、Devise 経由で認証することはできません。私たちがやろうとしていることについて私が見つけることができた唯一の具体的な例の 1 つは、この投稿のページの下部にあります。

https://www.ruby-forum.com/topic/4409930

最後のステップ「Devise メソッドを使用してサインイン: sign_in @user, :event => :authentication」以外はすべて同じであるため、ルートの設定方法で正しい軌道に乗っていると信じるようになりました。これが、私が Devise を私たちのアプリケーションに統合しようと試みた動機です。

それを読んだ後、私が意図したことは、Devise を一種の制限された状態で実装し、sign_in メソッドのみを使用することでした。残念ながら、Devise は非常に独断的で、「オール オア ナッシング」のようなソリューションのようです。Deviseをサポートするためにアプリケーションの大部分を完全に再構築するか、完全に放棄して独自のソリューションを実装しようとするかを決定する方法と、どのように進めるかについては非常に確信が持てません。

tl;dr 1) Devise を使用するために Rails アプリの大部分をやり直す価値はありますか? 2) このルートを Devise なしで機能させることは可能ですか? どのように?

4

1 に答える 1