LoginSignup
37
28

More than 5 years have passed since last update.

メールでアカウント認証をするときの一般的な流れ

Last updated at Posted at 2017-01-30

はじめに

この記事ではメールでアカウント認証をするときの一例を説明します。具体的には、ユーザーがサインアップするとメールが送られてきて、そのメールにURLが書いてあり、そのURLをクリックするとアカウント認証完了とします。以下が大きな流れです。
overview.png

1.トークンを生成し保存

サインアップする時にトークンを生成する。トークンとはランダムでとても長い文字列の事である。以下の図ではトークンをsampletokenとした。
その際にトークンをデータベースに登録し(この時トークンをハッシュ化して登録した方がセキュリティ的に良い)、そのトークンを末尾にくっ付けたURL(https:/www.account.co.jp/sampletoken)を生成する。その後、URLを記したメールを、ユーザーがサインアップで記入したメールアドレスに送信する。
step1.png

2.ユーザーがクリックしてトークンを送信

ユーザーがそのURLをクリックすると、ブラウザがURLの語尾を切り取って、その語尾をサーバーに送信する(ようにプログラムする)。
step2.png

3.データベースと照会

送られてきた語尾を、データベースに保存したトークンと比較して、同じであればtrue、違うならばfalseを返す。
step3.png

4.認証完了

trueが返ってくればアカウント認証完了とし、次の画面(例えばユーザーの設定画面とか、サインインした状態のトップページとか)に遷移する。

とは言っても

Gemのdeviceとか使えばすぐできるんだろうけど、、、

37
28
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
37
28