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 に入門してみる | vimtaku blog

ルーティング

参考:

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

サインイン後の遷移先を決める。デフォルトでは以下の順で有効な遷移先を探す。

  1. session["#{scope}_return_to"]:元のページに戻るために保存された URL
  2. resource_root_path:ログインユーザー用のホーム
  3. root_path:アプリケーションのホーム

参考:

Overriding Devise’s after_sign_in_path_for | Cybrilla TIL

Method: Devise::Controllers::Helpers#after_sign_in_path_for — Documentation for devise | RubyDoc.info

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

参考:

Method: Devise::Controllers::Helpers#after_sign_out_path_for — Documentation for devise | RubyDoc.info

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

参考:

OmniAuth::NoSessionError – You must provide a session to use OmniAuth. (configured in devise) – Stack Overflow

エンジンで使う

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

Devise and OmniAuth Saml: ActionController::InvalidAuthenticityToken · Issue #3119 · plataformatec/devise – GitHub

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 のテスト

参考:

SMS インタラクションのテスト | POSTD

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 モードでトークン認証を実装する。

参考:

lynndylanhurley/devise_token_auth: Token based authentication for Rails JSON APIs. Designed to work with jToker and ng-token-auth. – GitHub

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

API User authentication with devise_token_auth | Learnetto

Integrating OmniAuth Into Your Rails API – omniauth/omniauth: OmniAuth is a flexible authentication system utilizing Rack middleware – GitHub

[WORKING] Instructions for Rails 5 API and Google OAuth2 · Issue #1020 · lynndylanhurley/devise_token_auth – GitHub

タグ:

コメントを残す

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