このプロジェクトは、Google OAuth 2.0 認証を実装した Node.js アプリケーションです。
npm install.envファイルを作成し、以下の環境変数を設定してください:
# Google OAuth設定
GOOGLE_DISCOVERY_ENDPOINT=https://accounts.google.com/.well-known/openid_configuration
GOOGLE_CLIENT_ID=your_google_client_id_here
GOOGLE_CLIENT_SECRET=your_google_client_secret_here
GOOGLE_REDIRECT_URI=http://localhost:3000/api/oauth/callback
# サーバー設定
PORT=3000
NODE_ENV=development- Google Cloud Consoleでプロジェクトを作成
- OAuth 2.0 クライアント ID を作成
- 承認済みリダイレクト URI に
http://localhost:3000/api/oauth/callbackを追加 - 取得したクライアント ID とクライアントシークレットを環境変数に設定
npm run devnpm startGET /api/oauth/authorize
このエンドポイントにアクセスすると、Google OAuth 認可ページにリダイレクトされます。
GET /api/oauth/callback
Google OAuth 認可後にリダイレクトされるエンドポイントです。認可コードを受け取り、アクセストークンを取得します。
レスポンス例:
{
"success": true,
"message": "OAuth authentication successful",
"token_type": "Bearer",
"expires_in": 3600,
"access_token": "ya29.a0...",
"id_token": "eyJhbGciOiJSUzI1NiIs...",
"scope": "openid email profile"
}GET /health
サーバーの状態を確認できます。
app.js- Express.js アプリケーションのメインファイルroutes/oauth-request-route.js- OAuth 認可リクエストのルートroutes/callback-route.js- OAuth コールバック処理のルートpackage.json- プロジェクト設定と依存関係
- ユーザーが
/api/oauth/authorizeにアクセス - Google OAuth 認可ページにリダイレクト
- ユーザーが認可を承認
- Google が
/api/oauth/callbackに認可コード付きでリダイレクト - アプリケーションが認可コードをアクセストークンと交換
- トークン情報を JSON レスポンスとして返却
- 本番環境では、アクセストークンを直接レスポンスに含めないでください
- 適切なセッション管理とトークン保存を実装してください
- 環境変数は安全に管理してください