英語ディクテーション学習Webアプリ(7)
ユーザ認証の実装
学習記録をとれるようにするにあたり、ユーザを識別出来ないとダメだろうということで、認証を作ってました。
自前でユーザ・パスワード管理しても良いのですが、あんまりパスワード持ってたくないよねってのもあったので、Spring Social Twitterを使って、Twitterログインを実装してみました。
今一つSpring Securityとの連携がよく分からなかったのですが、下記ページがとても参考になりました。
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のプロファイルを調べて導入しないといけません。