本記事では、World IDを用いた認証を自作アプリに組み込む方法について解説します。公式のガイドラインは下記にあります。
World IDの認証連携
World IDは、OpenID Connect(OIDC)に準拠した認証プロバイダであるため、OIDCをサポートする任意の認証ライブラリやフレームワークを使用してWorld IDと統合することが可能です。
使用できる典型的な互換の認証エンジンには、Auth0、AWS Cognito、CloudFlare Access、OneLoginなどがあります。ほとんどの言語とフレームワークには、これに対応するシンプルなオープンソースパッケージがあります。
本記事ではWorld ID認証をAuth0と連携させる方法について解説します。
前準備
まずは、Auth0のアカウントとテナントを作成します。
https://auth0.com/signup
次にWorldcoin Developer Portalのアカウントを作成します。
https://developer.worldcoin.org
サインインするためには、World Appをダウンロードし、電話番号の確認を完了する必要があります。
World IDの設定
Worldcoin Developer Portalに移動し、新しいアプリを作成します。
作成方法は下記に記載していますのでご参照ください。
アプリを作成し終えたら、Developer PortalのSign In設定セクションに移動し、Redirect URIにhttps://{domain}/login/callback
を追加します。{domain}
はAuth0のテナントドメイン(dev-xxxxxx.auth0.com
)です。
Client IDとClient Secretは後で使用するのでメモしておきます。Secretは更新したときにだけ表示されるので、一度resetする必要があります。これらの値はAuth0での接続設定時に使います。
接続の追加
上記リンクにアクセス後、Add Integration
を選択し、必要なアクセス要件を読んで、Continueを選択します。
Client ID, Client Secret, アプリケーションに必要な権限を入力し、Createします。
Applicationsビューで、この接続を使用してログインするアプリケーションを選択します。
認証テスト
Try Connectionを押すと、World ID認証用のQRコードが表示されます。World AppシミュレーターにQRを読み込ませ、認証します。
以上で設定は完了です。これで自作アプリの認証プロバイダをAuth0にすることで、World IDを用いた認証管理ができるようになります。
Auth0連携のサンプルアプリはこちらが参考になります。
その他
公式のサインインチュートリアルにあるNext.jsと連携させるNextAuth Templateがあるのですが、Developer Portalでredirect先URLを設定するところでエラーとなり、断念しました。プロトコルがhttpのリダイレクト先は設定できないのかもしれないです。サンプルもあまり更新されていないです。
P.S.
関連記事を貼っておきます。