1. 概要
前回はAWS Amplify(Gen2)を使い、認証(Cognito)を行うのとTodoアプリを実装する内容でした。今回は前回のものにGoogle Signinを追加する内容となります。
対象としては開発を1年程やってて自分で最初から開発してみたい方になります。そのため細かい用語などの説明はしません。
2. 前提条件
2-1. こちらを完了してる事
3. 外部IDプロバイダーを設定(Google)
3-1. Cognitoドメインを取得
- AWS Console 管理画面
- Amazon Cognito
- ユーザープール
- 「アプリケーションの統合」タブ
- ドメイン
- 「アプリケーションの統合」タブ
- ユーザープール
- Amazon Cognito

3-2. 許可リダイレクトURIを設定
- こちらを参考
- 新しく設定した認証リソースとそのOAuthリダイレクトURIを設定
- 前回は「URIs 2」を追加したため、今回は「URIs 3」を追加
- CognitoドメインをOAuthクライアントに設定
https://<Cognitoドメイン>/oauth2/idpresponse

4. Amplifyのシークレット作成(sandbox)
4-1. こちらを参考
- コマンド
- 下記2つを作成
- GOOGLE_CLIENT_ID
- GOOGLE_CLIENT_SECRET
npx ampx sandbox secret set GOOGLE_CLIENT_ID
npx ampx sandbox secret set GOOGLE_CLIENT_SECRET
npx ampx sandbox secret list
5. ソースコード
5-1-1. amplify/auth/resource.ts
import { defineAuth, secret } from "@aws-amplify/backend";
/**
* Define and configure your auth resource
* @see https://docs.amplify.aws/gen2/build-a-backend/auth
*/
export const auth = defineAuth({
loginWith: {
email: true,
externalProviders: {
google: {
clientId: secret("GOOGLE_CLIENT_ID"),
clientSecret: secret("GOOGLE_CLIENT_SECRET"),
scopes: ["email"],
},
callbackUrls: [
"http://localhost:3000/",
"https://main.12345678901234.amplifyapp.com/",
],
logoutUrls: [
"http://localhost:3000/",
"https://main.12345678901234.amplifyapp.com/",
],
},
},
});
- 「externalProviders」を追加
6. Amplifyのcloud sandboxを立ち上げ
npx ampx sandbox
7. サーバーを起動
npm run dev
8. ブラウザで確認(ローカル)
- http://localhost:3000
- 「Sign in with Google」が表示されてる






9. Amplifyのシークレット作成(管理画面)
9-1. 該当プロジェクト
- ホスティング
- シークレット
- GOOGLE_CLIENT_ID
- GOOGLE_CLIENT_SECRET
- シークレット



10. ローカルからAmplifyへデプロイ
git add .
git commit -am "Added sso of google"
git push
11. ブラウザで確認(Amplifyのデプロイドメイン)
- https://main.12345678901234.amplifyapp.com/
- 画面キャッチャーは上記の8を参照
12. 備考
今回はGoogle Signinを追加する内容についてでした。
13. 参考
- Docs | Next.js (nextjs.org)
- Quick Start – React
- TypeScript: Documentation – TypeScript for the New Programmer (typescriptlang.org)
- Next.js App Router – Next.js – AWS Amplify Gen 2 Documentation
- External identity providers – AWS Amplify Gen 2 Documentation
- CLI commands – Next.js – AWS Amplify Gen 2 Documentation
投稿者プロフィール

-
開発好きなシステムエンジニアです。
卓球にハマってます。
最新の投稿
【Next.js】2025年3月8日【NextJS】Cropping a portion of an image with React Cropper
【Next.js】2025年2月9日【NextJS】View and Download PDF
【AWS】2025年2月1日【AWS】Github ActionsやAWS SAMを使ってAWS S3・CloudFrontにウェブコンテンツをデプロイし、サブドメインにアクセスできるようにする
【AWS】2025年1月25日【AWS】Deploy Serverless NextJS app with AWS Lambda Web Adapter using AWS SAM