ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

英語ディクテーション学習Webアプリ(7)

ユーザ認証の実装

学習記録をとれるようにするにあたり、ユーザを識別出来ないとダメだろうということで、認証を作ってました。

自前でユーザ・パスワード管理しても良いのですが、あんまりパスワード持ってたくないよねってのもあったので、Spring Social Twitterを使って、Twitterログインを実装してみました。

Spring Social Twitter

今一つSpring Securityとの連携がよく分からなかったのですが、下記ページがとても参考になりました。

qiita.com

Twitter認証通った後、TwitterのscreenNameとSpring Securityのusernameをマッピングして、Spring Securityの認証も通ったことにしてあげると良さげな動作をしてくれます。

(参考)その辺の実装

dictation/IndexController.java at master · taka2/dictation · GitHub

データベースの導入

とりあえずH2 Databaseのオンメモリ版を入れてみました。これだとインスタンスの再起動時にデータが消えてしまうので、マスタ管理には使えますが、記録には使えません。

RDSも少し試してみたのですが、基本プライベートネットワークに置いて、IAMインスタンスプロファイルを設定したEC2インスタンスからアクセスさせるのが良さそうです。この規模のアプリケーションには要らないかな。。HerokuでもPostgreSQL使えるみたいなので、そちらを検討しようと思います。

そうなると、ローカルはオンメモリデーターベース、Heroku上ではPostgreSQLとなり、環境差異を吸収する必要が出てくるので、Spring Bootのプロファイルを調べて導入しないといけません。