3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【絶対にできる!】Googleログインボタンの実装【React × Django REST Framework】

Last updated at Posted at 2022-03-05

デモ

google_login_demo.gif
React × Django REST Framework で Googleログイン/新規登録 ボタンを実装するチュートリアルです
ソーシャルログインボタンの具体的な作例を通じて、サードパーティ認証(OIDC)に関して理解を深めることができます

この記事は導入偏です
本篇はこちら(part1)から

はじめに

こんにちは
クラウドエンジニアをやっているcokemaniaです

ここ最近、個人WEBアプリ開発にて認証機能にソーシャルログインを使ってみたいと思い
Googleログインボタンの作り方を調べておりました

しかし、見つかった記事はボタンの作成&トークンの発行で終わっているものしかなく
ユーザの新規登録ログイン機能の実装まで解説してくれているものはなかったので
誰もがGoogleユーザ登録とログインの機能を作れるようになればと思い記事に起こしてみました

僕は普段 AWSやGCPなどのクラウドインフラばかり触っているので
プログラミング言語(Python, JavaScript)の知識は乏しいです
こんな僕でも動くものを作ることが出来たので
初学者の方でも是非参考にしてみてください

この記事について

本記事は フロントにReact(JavaSctipt) バックエンドにDjango(Python)を利用したアプリケーションの認証に
react-google-loginによって提供されているGoogleログインボタンを利用するデモアプリを作成していきます

デモアプリの構築を通じてreact-google-login(JavaScript React)python-social-auth(Python Django)の仕様だけでなく
認証周りの知識(JWTやOIDC)などの理解も深めることができると思います

このパートを除いて全6パート分あり、めちゃくちゃ長いですので
実践してみる際はお時間あるときにどうぞ

目標

下記内容の達成を目標とします
つまり デモアプリの仕様です

  1. 新規登録/ログイン ボタンを配置&新規登録/ログイン機能を持たせる
  2. 新規登録時、Googleに登録されているユーザ情報を取得して、デモアプリのDBに保存する(ユーザ名,email,アイコン画像URL)
  3. ログイン時、GoogleLoginによって発行されるtokenを利用して認証を行い DBからユーザデータを取得する
  4. 新規登録/ログイン実施後に取得したユーザデータを画面に表示させる

簡略化してますが、構成図は以下の通りです

structure.png

認証フローは下記の通りです

flow.png

前提知識

下記の知識があると本記事は理解しやすいと思います
というか僕の実施した知識習得内容が以下の通りです

環境

本記事のデモアプリは下記の環境で構築しました

  • Google Compute Engine
    • Rocky Linux 8.4
  • VSCode + RemoteSSHプラグイン

ミドルウェア&ライブラリバージョン

バックエンド

Name Version
Django 3.2.11
djangorestframework 3.13.1
django-cors-headers 3.10.1
drf-social-oauth2 1.2.1
python-decouple 3.5

フロントエンド

Name Version
node 17.4.0
npm 8.3.1

リンク

GitHubでも公開してます!

cokemaniaIIDX/google-oauth-sample

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?