ログイン機能
本項ではログイン機能の実装を行います。ログインと一言で表すととても簡単なのですが、実はログイン機能を実装するには、セキュリティについて多くを学ぶ必要があります。
脆弱性を突かれた不正アクセスやWebサイトの改ざんを行われるケースが後を絶たないためです。
そこで今回実装するログインの機能は、Google OAuthというGoogleが提供する認証機能を利用します。セキュリティに対しての知識が無くても、ユーザー認証機能を実現できます。
※本項は、Ruby on Railsカリキュラム内で難易度が一番高く設定されています。
上の図のように、Google認証機能を利用することで自サービスにはログインロジックを実装する必要がありません。
Google OAuthを利用するには、Googleアカウントが必須のため、Googleアカウントを取得しましょう。
Googleアカウントの登録
![Ruby_on_Rails_login-2](//s3-ap-northeast-1.amazonaws.com/mash-jp/staging/uploads/1601/e9c4ee8840031c3747d4e58db8670528d7878149.1697.original.png?1488163466)
アカウント作成後、下記のURLにアクセスしてAPI利用登録を行って下さい。
https://console.developers.google.com
![Ruby_on_Rails_login-3](//s3-ap-northeast-1.amazonaws.com/mash-jp/staging/uploads/1601/e5c24fef2e7ac4ea6e51308c08fbdcf083e70c20.1698.original.png?1488163467)
上の図の赤枠をクリックし、プロジェクトの設定を行いましょう。
![Ruby_on_Rails_login-4](//s3-ap-northeast-1.amazonaws.com/mash-jp/staging/uploads/1601/ba8ce9e6f86927daaf09a1ff8aa87890d21f5588.1699.original.png?1488163468)
APIを有効にするボタンをクリックし、続いて認証情報に進んでください。
![Ruby_on_Rails_login-5](//s3-ap-northeast-1.amazonaws.com/mash-jp/staging/uploads/1701/1c1cebfb3283ea55b42b112ba655750b86443fe5.1700.original.png?1488163469)
APIを有効にするボタンをクリックし、続いて認証情報に進んでください。
![Ruby_on_Rails_login-6](//s3-ap-northeast-1.amazonaws.com/mash-jp/staging/uploads/1701/a115e35a62282ce8927b9bf6b0d4261fda07051c.1701.original.png?1488163470)
下の図のようなページが表示されるので、同じように入力して下さい。
「使用するAPI」は、Google+ APIを選択し、「APIを呼び出す場所」はウェブブラウザ( JavaScript )を選択します。
アクセスするデータの種類は、今回ログイン機能を実装するのでユーザーデータにチェックを入れて下さい。
![Ruby_on_Rails_login-7](//s3-ap-northeast-1.amazonaws.com/mash-jp/staging/uploads/1701/9fed3a6d2f3211708e67b81f44901933cfe61e34.1702.original.png?1488163470)
![Ruby_on_Rails_login-8](//s3-ap-northeast-1.amazonaws.com/mash-jp/staging/uploads/1701/6a3236f5f213960de5c415fd15c6d1cb5a46d04e.1703.original.png?1488163472)
クライアントIDを作成する画面では、名前と、JavaScriptの生成元、承認済みのリダイレクトURIを入力する欄がありますが、下記のように入力して下さい。
名前:任意
承認済みのJavaScript生成元:http://xxxxx.c9users.io:8080
承認済みのリダイレクトURI:http://xxxxx.c9users.io:8080/social_accounts/auth/google_oauth2/callback
※xxxxxの部分は環境により異なります
続いて、OAuth 2.0 同意画面を設定する画面になりますが、ここは任意です。
同意画面の設定完了後、完了ボタンを押すことで初期設定は完了です。
( いつでも上記の入力項目は可能です )
![Ruby_on_Rails_login-9](//s3-ap-northeast-1.amazonaws.com/mash-jp/staging/uploads/1701/8880eab199b0d3679c8c6df0197cd4e93ba0c1ae.1704.original.png?1488163474)
![Ruby_on_Rails_login-10](//s3-ap-northeast-1.amazonaws.com/mash-jp/staging/uploads/1701/b0305a80cc6fe62e26014101af72bb986061ee9a.1705.original.png?1488163474)
上の図の4つの赤枠の部分の設定がうまくいっていないとログイン処理が失敗してしまうので、重要な項目ではあるのですがいつでも修正できるので今の時点では上記の通り入力していただければ問題ありません。