【ブログ_アプリ】AndroidStudio Firebase認証
どうも、たこやきです。
最近、Androidアプリの開発でFirebase認証周りを実装していたのですが、ようやく一段落ついたのでその内容を共有します。
認証のプロセスについては思っていたより複雑で、試行錯誤の連続でしたが、やっとサーバーサイドで認証を行うフローが完成しました。
できたこと
最終的には以下のようなフローが実現しました:
フロントエンドからサーバーサイドに認証リクエストを送信
まずは、ユーザーがログインフォームからメールアドレスとパスワードを入力します。この情報はPOSTリクエストとしてサーバーサイドに送信され、サーバーで処理されます。サーバーサイドでFirebase認証
サーバーは受け取った情報を使って、Firebase Authentication APIを呼び出し、ユーザーの認証を実行。認証が成功すると、JWTトークン(IDトークン)が発行されます。フロントエンドへトークンを返す
サーバーサイドで生成されたJWTトークンをフロントエンドに返します。このトークンは、以降のAPIリクエストでユーザーを識別するために使用されます。フロントエンドからアカウント情報取得リクエスト
受け取ったJWTトークンを使って、ユーザーのアカウント情報を取得するリクエストをサーバーに送信します。この時、Authorizationヘッダーに「Bearer {トークン}」を含めてリクエストを送ります。サーバーサイドでトークン検証 & 情報返却
サーバーサイドはJWTトークンをFirebaseに確認し、有効であればユーザー情報を取得してフロントエンドに返す。これで無事に認証付きの通信が実現しました!
これまでの道のり
ここまで書いてみて振り返ると、やはり個人開発は挑戦の連続だと感じます。元々はSIerとして働き、社内SEも経験しましたが、やはり自分で全ての工程を担当は、脳が痺れますね。社内では、誰かに質問できるけど、個人だとできなから孤独です(笑)。
ウェブアプリのAIプロンプトを投稿するアプリも開発しましたが、AndroidアプリとWebAPIという開発はむずいね(笑)。
今回はFirebase Authenticationを使ったサーバーサイドの実装に挑戦しましたが、今後も様々な技術に挑んでいきたいと思います。
(去年 開発したAIプロンプト投稿ウェブアプリ)
引き続き、Androidアプリの開発や他のプロジェクトについてもブログで共有していくので、ぜひまたチェックしてみてください!