0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Go】ログイン機能でウェブアプリを作ってみる(1)

Last updated at Posted at 2023-07-18

こんにちは。

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を受け取る
    • ユーザーリストを返す

簡単に

  1. ユーザーを仮登録する(/auth/register/initial)
  2. ユーザーを有効化する(/auth/register/complete)
  3. ログインしてトークンを取得する(/auth/login)
  4. 最後に、トークンを使ってユーザーリストを取得する(/restricted/users)

という処理を実装していきます。

Part 1は以上です。
ありがとうございます。

次のPart 2は準備(Go)です。よろしくお願いいたします。

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?