Wiki日本語もくじ2「認証方法のカスタマイズ」「OmniAuth」(概要・用途付き)|TechRacho(テックラッチョ)〜エンジニアの「?」を「!」に〜|BPS株式会社エンジニアの「?」を「!」に。Wiki日本語もくじ2「認証方法のカスタマイズ」「OmniAuth」(概要・用途付き)hachi8833シェアツイートブックマークLINEこんにちは、hachi8833です。Wikiの「認証方法のカスタマイズ」部分の目次に概要や用途を加えました。OmniAuthの目次も含まれています。今後も随時更新いたしますので、原文更新にお気づきの方は@techrachoまでお知らせいただけると助かります。認証方法のカスタマイズ※新しい順に並べ替えてあります。userゲストのUserオブジェクトを使って、ログインしていない一般ユーザーでもセッションを管理できるようにする方法です。ここではゲストのオブジェクトを作成してidをsession[:guest_user_id]でデータベースに保存し、current_or_guest_userでゲストかどうかを判定します。gemを使って、ボット除けの画像キャプチャ認証を導入する方法が紹介されています。password独自のコントローラを作成する方法と、Devise::RegistrationsControllerでupdate_resourceをオーバーライドする方法の2つが紹介されています。Explorerで生じるエラーの回避方法が紹介されています。設定変更のみで行なえます。addressサインインのほか、パスワード変更時にもユーザー名とメールアドレスの両方を使えるようにする方法や、Gmailやme.comで使われている「メールアドレスのユーザー名部分もユーザー名として使えるようにする方法」も紹介されています。MySQLとMongoid向けの注意事項も含まれています。LDAPコード例ではwarden(Deviseを支えるRackの認証フレームワーク)を呼んでいます。Exampleこの記事は既に古くなっている(TokenAuthenticatableがDeviseから削除されたため)ので、Gistのコードを参照するようにとのことです。system個人ブログアプリなど、ユーザーが1人に限定されたプライベートアプリをDeviseで構築する際に、新規ユーザー登録ページを非公開にする方法です。ユーザーが1人も登録されていない状態で一般ユーザーが登録ページにアクセスしようとするとトップにリダイレクトされ、ユーザーが1人登録済みの場合はsign_inページにリダイレクトされます。addressメールアドレスをユーザー名に使って欲しくない場合の方法です。config/initializers/devise.rbの設定変更かモデルの変更で行えます。Parameter周りの変更も必要です。あとは必要に応じてビューのレイアウトやdevise.*.ymlのメッセージを変更します。DeviseDeviseでいわゆるBASIC認証を行う方法が簡単に紹介されています。BASIC認証やdigest認証はDeviseがなくてもRailsの機能だけでできます。(HTTPS)DeviseのビューをHTTPSで保護する方法です。1.0と1.1で方法が少し異なります。この方法で部分的に保護するより、サイト全体をHTTPSで保護することが推奨されています。upフォームでメールアドレスが入力されたら確認メールをユーザーに送信し、ユーザーがメールのリンクからWebサイトに戻ってパスワードを設定できるようにします。手順1を省略すると、登録フォームでパスワードも入力できるようになります。4の場合は、「確認をオーバーライドして、確認中にユーザーが独自のパスワードを選べるようにする」も参照してください。AuthenticationDeviseでのBASIC認証、digest認証、NginxやApacheと併用する場合の方法が紹介されています。※BASIC認証やdigest認証はDeviseがなくてもRailsの機能だけでできます。deviseへのリンクだけが貼られています。Railsで外部リソースを使う場合の外部リソースの認証方法です。Wardenのstrategyを作成することで行います。emailsDeviseの設定を追加するだけで、ユーザー登録、サインイン、パスワードを忘れたときの処理などでメールアドレスの大文字小文字を区別しないようになります。User.find_by_emailは大文字小文字を区別するので、代わりにUser.find_for_authenticationを使う必要があります。OmniAuth※並べ替えは行っていません。OmniAuthの基本的な利用方法を解説しています。OmniAuth以外の認証をオフにする場合の方法やトラブルシューティングも紹介されています。171回もの更新が行われており、需要の高さがうかがえます。OmnuAuthはデフォルトでは1つのモデルでしか利用できません。これを複数モデルで共有できるようにする方法を紹介しています。結合テスト(原文)OmniAuthをモック化して結合テストに使う方法を紹介しています。元記事はDeviseではなくOmniAuthのWikiです。Omniauthableではデフォルトでsign_outルーティングが追加されません。このルーティングの追加方法や、Devise::Controllers::Rememberableでセッションを保持する方法を紹介しています。outがそれぞれ同じ意味で使われています。訳文では、紛らわしくなる場合を除き、原則として原文に沿ったカタカナを使用します。同じ手順が複数のカテゴリに含まれていることもあります(原文に従っています)原文が更新されていることにお気づきの場合は、ぜひ@techrachoまでお知らせください。コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。チュートリアル第2版の監修および半分程度を翻訳、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れて更新翻訳中。enno.jpを運営。実は最近Go言語が好きで、Goで書かれたRubyライクなGoby言語のメンテナーでもある。仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。Storageを使ってはいけない(翻訳)#Tags#会社紹介#自社サービス#勉強会#Rails#PHP#デザイン#実績#週刊RailsウオッチCONTACTお気軽にご相談ください。(翻訳)CONTACTTechRachoでは、パートナーシップをご検討いただける方からのご連絡をお待ちしております。お気軽にご意見・ご相談ください。