Omniauth を使用したユーザーの認証

社交に行くか、家に帰りましょう!これは、2016 年のあらゆるビジネスの合言葉であるはずです。オンラインの領域はすでにほぼすべてのビジネスに浸透しており、取り残されたくなければ、デジタルの時流から抜け出す方法はありません。私たちのほとんどにとって、ソーシャル メディアは日常的なものになっており、ターゲットとする市場が何であっても、視聴者がたむろしている場所で会えなければ、ビジネスは後れをとる大きなリスクにさらされます。ソーシャルをビジネスに統合する最良の方法の 1 つは、ユーザーがソーシャル チャネルを通じてビジネスにログインできるようにすることです。
Omniauth は、Facebook、Google、Twitter、GitHub などのソーシャル認証プロバイダーを Ruby on Rails Web アプリケーションに簡単に統合できる素晴らしい宝石の 1 つです。これらの認証プロバイダーをアプリに統合する方法については、以下の手順を確認してください。

Device gem または他のログインシステムを備えた Rails アプリケーションがあると仮定します。

次に、Gemfile を開いて、omniauth gem を参照します。

1 ジェム「オムニア認証」

次に、通常どおり、bundle install コマンドを実行して gem をインストールします。

ソーシャル メディア (Facebook) でプロバイダーを作成する

Omniauth にプロバイダーを追加するには、プロバイダーのサイトで開発者としてサインアップする必要があります。サインアップすると、Omniauth に渡す必要がある 2 つの文字列 (ユーザー名とパスワードのようなもの) が与えられます。ただし、OpenID プロバイダーを使用している場合、必要なのは OpenID URL だけです。

Facebook 認証を使用したい場合は、developers.facebook.com/apps にアクセスし、[新しいアプリの作成] をクリックします。

プロバイダーをアプリに追加します。

config/initializers の下に、omniauth.rb という名前の新しいファイルを作成します。このファイルを使用して認証プロバイダーを構成できます。

前に作成したファイルに以下のコードを追加します。

Rails.application.config.middleware.use OmniAuth::Builder を行う
プロバイダー:facebook、YOUR_APP_ID、YOUR_APP_SECRET
終わり

これを実行するために必要な設定はこれですべてです。次のステップで説明するように、残りは Omniauth によって処理されます。

app/controllers/sessions_controller.rb ファイルを開き、次のような create メソッドを記述します。

デフォルト作成
auth_hash = request.env['omniauth.auth']

render :text => auth_hash.inspect
終わり

ユーザーモデルの作成

デフォルト作成
auth_hash = request.env['omniauth.auth']

@authorization = Authorization.find_by_provider_and_uid(auth_hash[“プロバイダ”], auth_hash[“uid”])
@認証の場合
render :text => 「#{@authorization.user.name} さん、おかえりなさい!」あなたはすでに登録しています。」
それ以外
user = User.new :name => auth_hash[“user_info”][“name”], :email => auth_hash[“user_info”][“email”]
user.authorizations.build :provider => auth_hash[“provider”], :uid => auth_hash[“uid”]
ユーザーの保存

render :text => 「こんにちは、#{user.name}!」あなたは登録しました。」
終わり
終わり

list_with_promote=[]
list_without_promote=[]
User.find_by_email(“[email protected]”).listings.approved.each は |u| を行います。
u.listing_promotes.present の場合?
list_with_promote << u.id
list_with_promote << u.listing_promotes.map{|u| p u.promote.name }
それ以外
list_without_promote << u.id
終わり
p「*******」
終わり

参考文献;

ギットハブ: https://github.com/intridea/omniauth

最新のアップデートを購読する

関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

jaJapanese