【Ralis】deviseとOAuthでのログイン機能実装【DIVE INTO CODE】

更新日:

「DIVE INTO CODE」学習記録 23日目

こんにちは。

23日目。deviseとOAuthでブログアプリにログイン機能をつける。

学習内容

【Gem(devise)導入実践】

  • deviseとは
  • リファレンスマニュアルを読む
  • deviseのヘルパーメソッド(before_action :authenticate_user!、user_signed_in?、current_user、user_session)
  • deviseのモジュール(:database_authenticatable、:registerable、:recoverable、 :rememberable、:trackable、:validatable)
  • deviseのストロングパラメータ設定(configure_permitted_parametersメソッド)
  • deviseカラム追加による機能実装
  • 管理者権限の付与方法
  • tryメソッド

【Oauth】

  • Oauthとは
  • 「認証」と「許可」の概念の違い
  • 「認証」の三要素(生体情報識別認証、所持情報識別認証、知識情報識別認証)
  • 認証と認可の組み合わせ
  • 「認可」の三要素(誰が、誰に、何の権限を)
  • Oauthの必要性
  • トークンとは
  • 認可コードとアクセストークンとAPI
  • OAuth認証の実装(Google+、facebook、Twitter)

 

感想

今回はrailsのgemである'devise'の導入実装と'OAuth'。

 

deviseをインストールすると、基本的なログインシステムをあっという間に構築できます。

 

バリデーションとかストロングパラメータとかcurrent_userメソッドとか、

そういうの一切作らなくて大丈夫だよ。用意しとくからあとは好きに使って。

 

めっちゃいい奴です。

 

scaffoldとdevise使えば僕が今まで時間かけて作成したブログアプリの基礎部分はマジであっという間に作れてしまうという事実。

 

ちゃんと1から全部教えてくれたDICカリキュラムには感謝ですが、

要するにプログラミングで今後学習すべきは、

実装したい機能を実装するための方法を探し、問題なく実装できるようにする力だと。

 

そのようにテキストにも書いてあります。

 

そのための必須事項は、

「リファレンスマニュアルを読めること」

それはつまり、

「英語を読めること」

と等しい。

 

とは言いましたが、文明の利器はちゃんとあり、

Chromeでリファレンスマニュアル表示したら右上に

「翻訳しますか?」

とGoogle翻訳が出てきます。

 

 

「はい、お願いします。」

 

 

二つ返事で翻訳ボタンを押す。

 

 

 

ことをしない僕は馬鹿です。

 

英語は英語で読めるようにしときたい。

 

そっちを優先して解読に努め始めます。

Google翻訳は最終手段。

 

 

英語学習に3年ほどブランクがある自分にとって、

リファレンスマニュアルは難易度がちょうどいい英語長文問題になってしまっています。

 

これがどうにもならないくらい理解できない難問だったら、すぐ翻訳機能使う諦めが生まれてたと思うんですが、めっちゃちょうど良い。

 

単語調べて「あーなるほど」ってスッキリする感じが、めっちゃちょうど良い。

 

受験生の皆さんもリファレンスマニュアル学習良いかもしれないです。

難関大学対策にはならないと思いますが、センター対策くらいにはなると思います。

 

 

次、今回のメイン「OAuth」。

 

「オーオース」とは安全性を保った「認可情報の委譲」。

オーオースを知るために、知らなければならない概念は「認証」と「認可」。それぞれの違い。

 

「認証」も「認可」も僕が普段生活している中では使わない言葉なので、概念なんてわかりません。

 

でも大丈夫です。

DICテキストはとても丁寧に、かつわかりやすく詳細に、認証と認可の概念とそれぞれの違いを教えてくれました。

 

認証○→認可×。基本的に無し。

認証×→認可○。「電車に乗る」と「切符」の例え。

認証○→認可○。「運転免許証」の例え。

認可○→認証○。これが「OAuth」。

 

認可と認証がわかると割とすぐしっくりきます。

 

まさにデジタル化という概念は、こういうことなんじゃないのか。

って感想。

 

現実で当たり前のように存在する概念を、コンピュータに落とし込むために、

その概念を何とか強引にでも数値化する感じ。

 

強引とか言ったら失礼か。スマートに。

 

アルゴリズム然り、こういうの考えついて実装する方たちは頭おかしいんだろうな。

きっと普段の私生活もデジタル化してるんだろうな。

 

そこまではいいや。

 

以上ありがとうございました。

-DIVE INTO CODE
-, , , , ,

Copyright© s u p ? , 2019 All Rights Reserved.