こんにちは。
Go言語で仮登録・本登録・ログイン機能だけのアプリを作成します。
追加で
・CORS+CSRF
・リフレッシュ
・アクセス回数制限
なども扱ってます。
Part 1 はじめに
何を作るのか?
ユーザーの仮登録、本登録、ログイン、制限されたリソースへのアクセスをするだけのWEBアプリ
何が学べるの?
ログイン処理が学べます
追加で
・docker composeの基本的な使い方
・JWTの基本
前提
- Go 1.20.6
- WEBのフレームワークとしてlabstack/echoを使用します。
- データベースとのやりとりはjmoiron/sqlxを使用します。
- 認証トークンとしてJWTを使用します。また、lestrrat-go/jwxを使用します。
- メールサーバーはmailhogを使用します。
- テストは書かない
作成するエンドポイント
- 仮登録 /auth/register/initial
- クライアントからemail, passwordを受け取る
- email宛に本人確認トークンを送信する
- 本登録 /auth/register/complete
- クライアントからemailと本人確認トークンを受け取る
- ユーザーの本登録を行う
- ログイン /auth/login
- クライアントからemail, passwordを受け取る
- 認証トークンとしてJWTを返す
- ユーザーリストの取得 /restricted/users
- クライアントからJWTを受け取る
- ユーザーリストを返す
簡単に
- ユーザーを仮登録する(/auth/register/initial)
- ユーザーを有効化する(/auth/register/complete)
- ログインしてトークンを取得する(/auth/login)
- 最後に、トークンを使ってユーザーリストを取得する(/restricted/users)
という処理を実装していきます。
Part 1は以上です。
ありがとうございます。
次のPart 2は準備(Go)です。よろしくお願いいたします。