Devise
参考:
plataformatec/devise: Flexible authentication solution for Rails with Warden – GitHub
ドキュメント
参考:
plataformatec/devise Wiki – GitHub
導入
参考:
Rails5 で devise を導入してユーザー認証のログイン画面を出すまで – Qiita
Rails で Devise によるユーザー登録・ログイン認証・認可の機能追加 | EasyRamble
認証機能を実装する devise の導入方法 | TASK NOTES
概要
参考:
ルーティング
参考:
Devise で devise_for メソッドによるルーティングを確認 | EasyRamble
Method: ActionDispatch::Routing::Mapper#devise_for — Documentation for devise | RubyDoc.info
devise_scope
参考:
Could not find devise mapping for path “/sessions/user” devise log in error – Stack Overflow
after_sign_in_path_for
サインイン後の遷移先を決める。デフォルトでは以下の順で有効な遷移先を探す。
session["#{scope}_return_to"]
:元のページに戻るために保存された URLresource_root_path
:ログインユーザー用のホームroot_path
:アプリケーションのホーム
参考:
Overriding Devise’s after_sign_in_path_for | Cybrilla TIL
after_sign_in_path_for – devise/helpers.rb at v4.6.1 · plataformatec/devise – GitHub
Devise and stored_location_for: how do you store the return location? – Stack Overflow
after_sign_out_path_for
サインアウト後の遷移先を決める。
デフォルト:root_path
参考:
after_sign_out_path_for – devise/helpers.rb at v4.6.1 · plataformatec/devise – GitHub
ユーザーモデルのビューを作成する
参考:
Devise で作成した User モデル用のコントローラーの index, show アクションを追加 | EasyRamble
コントローラーをカスタマイズする
参考:
Rails4 で devise の Controller をカスタマイズする – Qiita
Devise のコントローラをカスタマイズする方法 | 株式会社田村倉庫
parent_controller
参考:
parent_controller – devise/devise.rb at v4.6.2 · plataformatec/devise – GitHub
DeviseController – devise/devise_controller.rb at v4.6.2 · plataformatec/devise – GitHub
ユーザー名でログイン
参考:
devise をユーザー名で登録・ログインできるように修正する – Qiita
Allow users to sign in using their username or email address · plataformatec/devise Wiki – GitHub
secret_key
参考:
Rails 5.2.0.rc1 + devise 4.4.1 でエラー | blog.kotamiyake.me
session_store
参考:
エンジンで使う
Devise.setup
で必要な設定項目
config.router_name
config.parent_controller
ルーティングの定義で devise_for
に渡すオプション
class_name
:モデルを指定する (例:class_name: "MyEngine::User"
)module
:コントローラーが存在する名前空間を指定する (例:module: :devise
)
参考:
Use devise inside a mountable engine · plataformatec/devise Wiki – GitHub
複数のエンジンで使う
参考:
Sharing Devise on Multiple Engines · Issue #2827 · plataformatec/devise – GitHub
DeviseControllers => Devise::Mixins · Bharat311/devise@b9cddbd – GitHub
InvalidAuthenticityToken エラー
InvalidAuthenticityToken
エラーが発生してアクセスできない。
ActionController::InvalidAuthenticityToken
原因
フォームから POST する際の CSRF トークンが適切に設定されていない。
対処法
対象のアクションについて CSRF を無効にする。
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController skip_before_action :verify_authenticity_token, only: :developer ... end
参考:
Rails で POST しようとしたら InvalidAuthenticityToken エラー – Qiita
ActionController::InvalidAuthenticityToken ?! · Issue #237 · omniauth/omniauth – GitHub
Omniauth-identity InvalidAuthenticityToken – Stack Overflow
電話番号認証
参考:
Twilio + Devise で電話番号 (SMS) ユーザログイン機能を実装 | 珈琲駆動開発
Twilio と Rails で、1通1円の SMS 認証を実装してみる – Qiita
Twilio + rails + sms – SlideShare
Send SMS Messages from Your Rails 5 Application with Twilio | Twilio
サンプル
参考:
JunichiIto/twilio-sms-verification: A sample Rails application for Twilio SMS verification – GitHub
SMS のテスト
参考:
twilio-ruby
参考:
twilio/twilio-ruby: A Ruby gem for communicating with the Twilio API and generating TwiML – GitHub
sms-spec
参考:
mhs/sms-spec: A Ruby library for testing SMS Messages using RSpec and Cucumber – GitHub
Devise Token Auth
Rails API モードでトークン認証を実装する。
参考:
Devise と Devise token auth を共存させる (後から追加する) – Qiita
devise + devise token auth で Web にもアプリにも対応 – Qiita
Rails5 の API モードで devise_token_auth と omniauth を使ったログインを試す – Qiita
Rails5 + devise token auth で作る 認証 API | web 帳 (www.webcyou.com)
devise_token_auth で API を作成する 新規登録・ログイン | tackeyy.com
devise token auth を使って簡単に早く API を作る 1 | せんべいって美味しいよね
Rails APIモード + devise_token_auth に Twitter 認証を導入する – Qiita
翻訳 devise-auth-token 公式ドキュメント | sainu.io
React + RailsAPI アプリ ユーザー認証 (devise / devise_token_auth / redux-token-auth) 前編 | Artefact
How to use devise and devise_token_auth | MagmaLabs Technical Blog