Auth0でログインおよびアカウント登録、ユーザー情報取得
少しの記述だけで、こちらの実装が可能です。SNS連携以外の登録の場合、登録したメールアドレスにメールを送信することができます。 あとログインフォームやメールのテンプレートは変えられるのでUX回りを気にされる方にも問題なく利用できると思います。 ですがメールアドレスを承認する画面だけはレイアウト変更できなそうだったので、そこだけはネックかもしれません。(※自分が探せなかったので、もしご存知の方がいたら教えてください。)
ログイン認証/アカウント登録機能
app.get('/login', (req, res) => { res.send(req.isAuthenticated() ? 'Logged in' : 'Logged out'); });
プロフィール/ログイン情報取得
app.get('/', (req, res) => { res.send(JSON.stringify(req.openid.user)); })
req.openid.user
で取得できる情報は下記となります。
{ "nickname": "<メールアドレスのアカウント部分>", "name": "<メールアドレス>", "picture": "https://s.gravatar.com/avatar/0ed865cb736ed9f37c97413422c2fedb?s=480&r=pg&d=https%3A%2F%2Fcdn.auth0.com%2Favatars%2Ft.png", "updated_at": "2020-05-02T10:41:25.057Z", "email": "<メールアドレス>", "email_verified": false, "sub": "auth0|5eacd4da54b14c0c126dd0cc" }
email_verified
は登録時に入力したメールアドレスに下記のメールが届くので、ユーザーがクリックすると値がtrue
に代わります。
総評
個人的は簡易的に利用できてよい。お試し期間の22日をすぎて、フリープランになったら、どこまで制限されるのかが気になる。 実装は楽だがauth0の仕様を覚える必要は少なからずある。
時間があったら下記の内容も調べてみる。
登録してから22日間はお試し期間中だからの機能
- 開発用のメールサーバーが指定されているので、最終的には自分でメールサーバーを構築する必要がある。
- google auth がデフォルトで利用できるが、こちらも開発用のアカウントが設定されているため、知識がなくても利用できている。
気になる点
- ユーザーの削除機能
- ユーザーのアップデート機能
- メールアドレス、ユーザー名、パスワードは設定できるが、そのほかの情報を追加することができるか?