眠気.jl

投稿=不定期

Cognito認証->NextAuth+Auth0認証(備忘録)

前回Cognito認証つけたんですがCognito微妙そうなのでAuth0で認証やってみました。

Cognito認証の削除

amplify remove auth
# User Poolとか消していいか聞かれるのでY

amplify push

Auth0認証の追加

Auth0のダッシュボード->Create Application->Single Page Applicationを選択

NextAuthをnpmで入れる

import { useAuth0 } from "@auth0/auth0-react";
import { Auth0Provider } from "@auth0/auth0-react";

して

const { isAuthenticated, loginWithRedirect, logout } = useAuth0();

return isAuthenticated ? (認証済みのひとに見せたいコンテンツ) : (未認証のひとに見せたいコンテンツ)

とすれば大丈夫でした。

必要だった設定

Auth0ダッシュボードでの設定

Allowed Callback URLs
Allowed Logout URLs
Allowed Web Origins

ローカルで確認する場合3箇所ともlocalhost:3000

.envの設定

      <Auth0Provider
        domain={domain}
        clientId={clientId}
        redirectUri={redirectUri}
      >

domain, clientId, redirectUriにAuth0ダッシュボードに表示されてる値を代入

参考

GitHub - nextauthjs/next-auth-typescript-example: An example project that shows how to use NextAuth with TypeScript

その他

はてぶ移行したい

日記

保護猫引き取りたい

独身男性はキモいので保護猫引き取れないかも....
男女平等を求める暇な連中抗議してくれないかな。それかペット産業に加担しつつ「ネコ好きなんでネコ(買って)飼ってます〜」とかいう矛盾した存在になるか。
僕が猫買ったらペット産業に加担するゴミクズと罵ってください。
終わり

AmplifyでホストしてるNext.jsにCognito認証を追加した(備忘録)

Basic認証はAmplifyの画面ポチポチすればできますが、Cognitoでユーザ認証したかったため。

やりたいこと

↓pagePropsに認証つけたい、認証通ってる場合はサインアウトボタン出したい

  return <Component {...pageProps} />

amplify設定済みです

❯ amplify add auth
Using service: Cognito, provided by: awscloudformation
 
 The current configured provider is Amazon Cognito. 
 
 Do you want to use the default authentication and security co
nfiguration? Default configuration
 Warning: you will not be able to edit these selections. 
 How do you want users to be able to sign in? Username
 Do you want to configure advanced settings? No, I am done.
✅ Successfully added auth resource [アプリ名] locally

✅ Some next steps:
"amplify push" will build all your local backend resources and provision it in the cloud
"amplify publish" will build all your local backend and frontend resources (if you have hosting category added) and provision it in the cloud

...

amplify push

add auth, pushしてから

return (
      <AmplifyAuthenticator>
        <Component {...pageProps} />
        <AmplifySignOut />
      </AmplifyAuthenticator>);

でできました。 AWSすごい、靴なめます。

signin
signout

そもそもCognito使わないほうがいいかも

バックアップとリストア機能がなかったりセッションが長く持たなかったりで本番には向かないかもしれません。
内輪で試すときはCognitoで、本番はAuth0とかがいいんですかね?なにもわかりません...
アンチコメント歓迎しているので誰か教えてください。

AWS Cognito: Don’t go to production | by Warren Parad | Authress | Medium

Serverless: 3 things AWS Cognito needs to be production ready | by CBernardes | JavaScript in Plain English

Cognitoのバックアップ取る野良パッケージはあるようです。

GitHub - mifi/cognito-backup: CLI for backing up AWS Cogntito User Pools

その他

現在バージョン指定なしで入るaws-amplify/ui-reactは2.18.0ですが、動かなかったので1.2.5に下げました。
2.18.0に合わせるべきかもしれませんが、公式コピペでとりあえずやってみたかったので下げました。

日記

1

ルンバ様の通り道開けるために荷解きとリビングの掃除しました、偉いですか?
引っ越して一年ぐらいなのでそろそろ荷解きと掃除終わらせたい....

2

あと12日実質Kindle半額キャンペーンやってて萎えました、物理本買ったらKindleが安くなることがあって悲しい。
みんなうっかりKindleが垢BANされますように!ろいより。
AWSコンテナ設計・構築[本格]入門

3

CloudFormationのスタックを削除するときは,文言通りdeleteを入れれば削除できました。
placeholderが偽のようです。S3のバケット削除画面では「バケット名」を入れろと言いつつ「完全に削除」(placeholder)を入力すると消せたりしたので、疑いすぎて脳がバグりました

日記

1

ダンボールをめちゃくちゃ捨てました

2

AlexaとSwitchBotを多少設定しました

その他

このチュートリをUbuntuでやってたら, prisma generateでコケて vercel.com

> prisma generate

Error: Unknown binaryTarget debian-openssl-3.0.x and no custom binaries were provided

調べたらデフォで入ったprisma, prisma clientは3.8.1ではまだOpenSSL3.0.x対応してなかったようです。
package.jsonprisma3.13.0にしてnpm i再度実行したら解決しました。

"prisma": "^3.13.0",
"@prisma/client": "^3.13.0",

next dev

...
✔ Generated Prisma Client (3.13.0 | library) to ./node_modules/@prisma/client in 114ms
You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client
...

同じ現象っぽい方

github.com

issue github.com

Ubuntu22.04LTSでKindle for Windowsの起動できました(備忘録)

バージョンのメモ

❯ wine --version
wine-7.7 (Staging)
KindleForPC-installer-1.36.65107.exe

その他

{wineのバージョン}×{kindle.exeのバージョン}の相性バトルを無限回やり直すことを覚悟してたんですが、あんなり素直に動いて逆に不安になりました。
あと22.04にあげたら、snap installしたslackでも日本語打てました。これもSDGsの一環ですねすばらしい。

日記

日記

トイレがトイレットペーパーの芯で散らかってたのでなんとか拾ってゴミに出しました。
芯なしペーパーにしたのでもう大丈夫です。

鶏むねを1.5kg鶏ハムにしました。

Ubuntu22.04にあげました(備忘録)

入れたのとかメモ

docker, docker compose, minikube, kubectl, kind, aws-cli v2

さよならdocker-compose、こんにちはdocker compose

dockerのインストール
sudo apt install docker.io
docker composeのインストール
DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
mkdir -p $DOCKER_CONFIG/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose
chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose

dockerを一般ユーザでも使えるようにするやつ(dockerグループに追加), 再度ログイン

sudo usermod -aG docker ${USER}
minikubeのインストール
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
kubectlのインストール
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
kindのインストール
curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.12.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind
aws-cliのインストール
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

確認

$ docker -v; docker compose version; minikube version; kubectl version --client; kind --version; aws --version
Docker version 20.10.12, build 20.10.12-0ubuntu4
Docker Compose version v2.4.1
minikube version: v1.25.2
commit: 362d5fdc0a3dbee389b3d3f1034e8023e72bd3a7
Client Version: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.6", GitCommit:"ad3338546da947756e8a88aa6822e9c11e7eac22", GitTreeState:"clean", BuildDate:"2022-04-14T08:49:13Z", GoVersion:"go1.17.9", Compiler:"gc", Platform:"linux/amd64"}
kind version 0.12.0
aws-cli/2.6.0 Python/3.9.11 Linux/5.15.0-27-generic exe/x86_64.ubuntu.22 prompt/off

その他

サードパーティー云々にチェック入れてインストールしたら、nvidia-smi通ってました

$ nvidia-smi
Fri Apr 29 23:07:31 2022       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.60.02    Driver Version: 510.60.02    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+

(なんで?Ubuntuがこんなに親切なはずがない)

コンテナ完全理解者になりたい。
引っ越してそろそろ一年なので、荷解きの完了が見えてきました。
オタク各位遊びに来てください。

参考

Ubuntu 20.04へのDockerのインストールおよび使用方法 | DigitalOcean
kubectlのインストールおよびセットアップ | Kubernetes
minikube start | minikube
kind – Quick Start
Installing or updating the latest version of the AWS CLI - AWS Command Line Interface