3

Googleのクレデンシャルを使用してRailsアプリのユーザーを承認するための現在の最良の方法は何ですか?

グーグルは過去1年かそこらで彼らのサービスにいくつかの大きな変更を加えました。同時に、OmniauthとGoogleに関する情報は、私が見ることができるものからするとかなりまばらです。ですから、現時点で人々が最善のアプローチであると考えているものを知りたいと思います。

Devise+Omniauthを使用しています。ユーザーが自分のGoogleクレデンシャルを使用してログインできるようにしたい(他のプロバイダーでこれを行う方法はすでに理解している)。ただし、ユーザーがGoogle+ストリームやその他のサービスを操作できるようにするoauthトークンも必要です(APIは現在読み取り専用であることがわかっていますが、将来的には計画しています)。

だから私の具体的な質問は次のとおりです。

1)open-idまたはomniauth-google-oauth2gemを使用することへの言及を見てきました。これら2つのアプローチの間に大きな違いはありますか?また、現在「正しい」アプローチと見なされているものは何ですか?

2)Googleのエコシステムはどの程度「壁に囲まれている」のでしょうか。たとえば、ユーザーがアプリ内からG +ストリーム、Picassaアルバム、YouTube動画などを操作できるようにするのは比較的簡単です。それとも、これらは完全に別個の生態系ですか?私が見た情報は、特定のサービスがgoogleのomniauthが初期化されるときにスコープとして定義されなければならないことを示唆しているように思われるので、これを尋ねます。しかし、ユーザーが認証した後、サービスがどのように統合されるかは不明です。

Googleを理解するのに役立つヒントやアドバイスをありがとう!

4

1 に答える 1

3

open-id gemは、Gmailアカウントを使用して認証を取得するための迅速で汚い方法です。Twitterの場合、アプリを登録し、コールバックURLを設定し、キーとシークレットを取得する必要があります...このgemを使用すると、必要なのは次のとおりです。

# Gemfile
gem 'omniauth-openid'

# Using pure omniauth
# omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :openid, :store => OpenID::Store::Filesystem.new('/tmp'), :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id'
end

# Using devise
# devise.rb
Devise.setup do |config|
  config.omniauth :open_id, :store => OpenID::Store::Filesystem.new('/tmp'), :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id'
end

あなたも鍵と秘密を必要としません!この使いやすさの欠点は、アプリを登録しないため、アプリケーションの名前、説明、ロゴを選択するなど、認証プロンプトをカスタマイズできないことです。表示されるのは(かなり醜い)プロンプトだけです。たとえば、このWebサイトをチェックして、私が何を意味するかを確認してください。または、StackOverflowを確認してください。彼らもそれを使用しています。

ただし、さらに重要なのは、ユーザーの電子メールアドレスと関連する名前にしかアクセスできないことです。

だから、私はomniauth-google-oauth2があなたのために行く方法であるとかなり確信しています。GoogleのCloudConsoleにアプリを登録し、そこでAPIキーとシークレットを取得する必要があります。

Google Oauthに関するドキュメントがほとんどないことに同意します(または、十分に検索していない可能性があります)。あなたがこれを機能させるときにあなたが話したすべての情報(G +ストリーム、YouTubeビデオなど)にアクセスする方法についてのチュートリアルを書くなら、私は確かにそれを読んだでしょう!

于 2012-05-05T15:08:42.703 に答える