本投稿の目的は作ったwebアプリの自慢ではなく、oauth2を用いてGoogleログインを行う際につまずいたポイントの記録です。
前半部分は作ったwebアプリの自慢なのでお急ぎの方はページ中段から読んでください。
最近コロナウイルスにより働き方が変わった影響もあり、1日の終わりに
- 今日やる予定だったことの振り返り
- 今日やったことの記録
- 明日やらなければならないこと
- 明日やりたいこと
あたりが全然できていなかったので、新卒の時ぶりにしっかりと自分のタスク管理をしてみることにしました。
ただ、どれだけ探しても新卒の時に、社内向けに自作したお手製の日報システム以上に使いやすいタスク管理ツールが見つからなかったんですよ(自分が考える最強の日報システムを設計して自分で作っているので自分にとって最高に使いやすいのは当たり前ですが)。
なので3年ぶりぐらいにJavaでWebアプリを作ってみました。
Twitterみたいな感じで簡単に思いついたことをつぶやけるタイムラインを実装しています。
通知もここに流れてくる形になります。
そしてここが味噌。前日に記載した翌日にやること/やりたいことが、翌朝新しく日報を作る時にデフォルト値として入ってくるようになっているので、びっくりするぐらいPDCAが回るという。
ただ、本投稿の目的は作ったアプリの自慢ではなく、oauth2を使ってGoogleログインを行う際につまずいたポイントの記録なので、ここからが本題となります。
みなさんymlの愛用者らしく、application.propertiesの書き方が地味にどこにも載ってませんでした。
spring.security.oauth2.client.registration.google.client-id=hogehoge spring.security.oauth2.client.registration.google.client-secret=mogamoga
となります。
承認済みのリダイレクトURIにローカルIPを指定していなかったことが原因となります。
そして、厄介なことに、こいつはドメインの形を示していないとURIに指定できない仕様となっております。
ナンテコッタ。
ただ、世の中便利なサービスに溢れていますね。
http://xip.io/というサービスを使ってあげると一瞬です。
ローカルIPの末尾に「.xip.io」をつけるだけ!あとは勝手にLocal IPにリダイレクトされます。便利ですね。
なので、設定画面はこんな感じ。
oauth2以前にtomcatに繋がりませんでした。
理由は至ってシンプル。セキュリティソフトのファイアウォールが原因でした…。
3年ぶりにJavaを書いた結果、ど素人みたいなところで躓いた…。恥ずかしい…。
個人的には下記のQiita記事が一番わかりやすかったです。
Spring SecurityでGoogleのOpenID Connectを利用する
Controllerへのパラメータ(引数)の追加とpom.xmlに必要なAPIを定義するだけなので、簡単ですよ!
※あとは①のapplication.propertiesへの追記
ログイン機能を自前で用意するのは大変かつ、登録のハードルが高くなってしまいますが、多くの人がアカウントを持っているであろうGoogle認証を使うと、登録の障壁が減るのでおすすめです。
しかも、Googleアカウントから名前やEmailそして写真もとってこれるので、さくっと画面が良い感じにもなるのでおすすめです!
最後まで読んでいただきありがとうございます。もしこの記事を気に入って頂けたようであればシェアをお願い致します。非常に励みになります。