Go言語とVue.jsで作るユーザー認証アプリ~バックエンド開発編Vol2~

こんにちは。KOUKIです。

前回に引き続き、ユーザー認証アプリの実装を行います。本記事は、主にバックエンドで以下の処理について書きます。

1. JSONデータのパース
2. パスワードのエンコード
3. データ登録

作業を始める前に、コンテナは起動しておきましょう。

なお、Mac環境&reflexツールで、コンテナを立ち上げ直さなくても修正内容が自動的に反映される環境にしてますが、Windowsをお使いの方はコードの修正があるたびに、コンテナを立ち上げ直してください。

前回

JSONデータをパースする

WebフレームワークにFiberを使用していますが、JSONデータを簡単にパースできる機能があります。

BodyParserメソッドを使うと、簡単にパースできます。

Talend API Testerでその機能を確認しましょう。

リクエスト先: http://localhost/api/register
形式: POST

JSONデータをGoで扱えるデータとして、パースされたことがわかりますね。

この機能を応用すれば、パスワードのチェックもできます。

上記のコードは、送られたパスワードが一致しているかをチェックし、一致していない場合は、400エラーとエラーメッセージを返してます

次のJSONデータでリクエストを送ってみましょう。

パスワードのエンコード

パスワードを原文のままMySQLに登録するわけにはいかないので、bcryptパッケージを使って、エンコードしましょう。

GenerateFromPasswordメソッドでエンコードしています。

この関数の戻り値の型は[]byte形式であるため、User構造体のPasswordの型を変更する必要があります。

確認してみましょう。先ほどと同様に以下の条件でPOST送信します。

結果は、以下のようになりました。

Passwordを確認するとエンコードされていることがわかりますね。

データ登録

最後に、MySQLへデータを登録します。

まずは、前回作成したDB接続処理をパッケージ外からでも使えるようにします。

DB *gorm.DB」変数をPublic(先頭大文字)で定義しました。これでパッケージ外からDB変数にアクセスすることが可能になりました。

Register関数内からGORMのCreateメソッドを呼び出してみましょう。

ここまで設定できたら、先ほどと同じ条件でPOSTリクエストを送信してください。MySQLにデータが登録されるはずです。

リクエストに成功したら「http://localhost:8888/sql.php?server=1&db=go_auth&table=users&pos=0」にアクセスして、データを確認しましょう。

データが挿入されたことがわかりますね。

次回

次回も引き続き、バックエンド開発を行っていきます。

Go記事まとめ

コメントを残す