投稿日:

    カテゴリー 技術 / デザイン / 制作

    ワクワクしてます

    まいど。制作部の花島です。

    最近、ワクワクしながら、開発ができているので、シェアしたいと思います。

    今はFlutterに興味が集中しているのですが、ひょんなことからNextを触り出し楽しかったので共有です。

    ある案件で表示を早くしたいとなり、

    SSGができるNextを使おうとなりました。事前に動画を取得し動画一覧の静的ページを作り、動画詳細も事前に静的ページを生成。getStaticPathsとgetStaticPropsのコラボです。

    デプロイもしたいよねとなり、

    AWSのAmplifyを使おうとなりました。

    次に動画一覧を作っているので、動画をアップロードしたら、Nextをビルドしたいようねとなり、

    ビルドを指示できるAmplifyのwebhookを用いて、ビルドを。

    Route53で取ったドメインもこのサイトで設定したいとなり、Amplifyのカスタムドメイン設定で。

    この状態で

    NextとAWSのAmplifyが面白く。

    じゃぁ、次はログインでSSOをやりたいねとなり、

    Cognitoのユーザープールを使い、NextAuthでCognito連携を。

    ここでもNextAuthとCognitoの凄さに感動し、

    じゃぁ、本番環境はAzureADでもSSOしたいねとなり、

    なんと!!と思ったのも束の間、

    Cognitoが外部IdPを簡単に設定できるとわかり、NextAuth + Cognito + AzureADでできる。

    Cognitoの賢さに惚れ惚れしました。

    あ、動画ファイルはCloudFrontから配信しているけど、他の人には見られたくないよね。

    今まで通り、CloudFront 署名付き Cookieを使う。

    あ、どうやって、Cognitoのログイン時にCloudFront 署名付き Cookieを使おうかと悩んだその数分後、

    なんと、congnitoでログイン後にイベントをかませるので、LambdaでCloudFront 署名付き Cookieを返そうと思い、

    レスポンスもCognitoで変更できるので、ログインのレスポンスでCloudFront 署名付き Cookieを入れ込む。

    もちろん、NextAuthのcallbackを使い、ログインした後、フロント側でCloudFront 署名付き Cookieをnookiesでサクッと保存。

    この短期間で

    Next + React + TypeScript + Cognito + NextAuth + AzureAD + CloudFront + Lambdaの賢さに惚れ惚れしました。

    楽しいです。

    今回ももちろん、田島さんを巻き込みました。

    https://vitalify.jp/blog/wp-admin/post.php?post=31114&action=edit

    では