Skip to content
This repository has been archived by the owner on Oct 12, 2021. It is now read-only.

Latest commit

 

History

History
69 lines (38 loc) · 4.64 KB

ARCHITECTURE.md

File metadata and controls

69 lines (38 loc) · 4.64 KB

ARCHITECTURE

ToC

Signup

henken.club を利用するにはアカウントが必要であり,アカウントの作成には次の 2 ステップを経る必要があります.

  1. 仮アカウントの作成
  2. アカウントの本登録

仮アカウント作成

このステップでは,ユーザが仮アカウントに必要な情報,メールアドレスエイリアスパスワード,表示名(ない場合はエイリアスで代用)を,クライアントを通して API に送信します.

メールアドレスとエイリアスが本アカウントと重複している場合,API は仮アカウント生成を打ち切り,クライアントを通じてユーザにその旨を通知します.

API 側では,登録トークン認証コードをランダムに生成します.認証コードはURL Safeであることが要求されます.また,認証コードの認証コードの有効期限を計算します.

登録トークン,認証コード,有効期限,仮アカウントの情報を DB に保存します.仮アカウントは登録トークンから取得可能であることが要求されます.これは後述する認証メールの再送からの要請です. 仮アカウント内でメールアドレスが重複していた場合,入力された情報で既にあった仮アカウントを上書きします.

API 側は,ユーザには認証コードを付加した認証 URL,および有効期限を,メールで送信します.

API はクライアントに登録トークンと有効期限を返却します.クライアント側は登録トークンを保存し,有効期限を念のためにユーザに通知します.

仮アカウント作成

アカウントの本登録

認証 URL をユーザが開いたとき,ブラウザは保存している登録トークンと,認証 URL から取り出した認証コードを API に送ります.

API 側では,登録トークン,認証コードのペアを確認します.

登録トークンが存在しなかった場合,API は操作を打ち切り,クライアントは現在保存していた登録トークンを破棄して,ユーザに必要な情報を通知します.

登録トークンが存在するが認証コードが間違っていた,あるいは有効期限が切れていた場合,API は操作を打ち切り,クライアントはユーザにその旨を通知し,必要ならばメールの再送が可能であることを通知します.

トークン,認証コードの正当性が認められた場合,API は仮アカウント本アカウントに追加します.また,仮アカウントの情報や,トークンなどの情報を削除します.

アカウントの ID から,アクセストークンリフレッシュトークンを生成し,クライアントに返却します. クライアントはアカウントの登録に成功した旨を通知します. 以降のフローはSigninを参照してください.

アカウント登録登録

認証メールの再送

認証 URL のメールが届かない,認証 URL の有効期限が切れたなどの理由でメールの再送が必要になる場合があります.

ユーザはクライアントに認証メールの再送を要求したとき, クライアントは自分が保存している登録トークンを API に送信します.

クライアントが登録トークンを保存していないなど,クライアント側で再送不能であることが判断出来る場合,その旨を通知して手続きを終了します.

API 側で登録トークンが存在しなかった場合,API は操作を打ち切り,クライアントは現在保存していた登録トークンを破棄して,ユーザに必要な情報を通知します.

API 側では,新しい認証コードと,認証コードの有効期限を更新します.また登録トークンから取得可能な仮アカウント情報を元に,メールを再送します.

API は,有効期限をクライアント側に返信します.クライアントは,メールの再送に成功した旨と,新しい有効期限をユーザに通知します.

アカウント登録登録

Signin

TODO: