ソーシャルコネクターを開発するためのステップバイステップガイド
最も速く始める方法は、既存の公式コネクターのコードをコピーし、ニーズに合わせて修正することです。GitHub コネクターを例にとってみましょう。
ステップ 1: 既存のコネクターパッケージをクローンする
コネクターのソースフォルダーには、次のファイルがあります:
- index.ts: コネクターのメインエントリーファイル。
- constant.ts: コネクターで使用される定数。
- types.ts: コネクターで使用される TypeScript の型。
- index.test.ts: コネクターのテストケース。
- mock.ts: コネクターのテストケースで使用されるモックデータ。
これらのファイルに加えて、コネクターを説明する README.md ファイル、logo.svg(ダークモードでのユーザー体験を向上させるために logo-dark.svg もオプションで)および npm パッケージ情報を定義する package.json ファイルを提供する必要があります。
ステップ 2: メインエントリーファイル (index.ts) を修正する
index.ts ファイルには、ほとんどのコネクターロジックが含まれています。通常、実装する必要がある 4 つの関数があります:
- getAuthorizationUri: サードパーティのソーシャルプラットフォームの認可 (Authorization) URI を生成します。GitHub の場合は次のようになります:- https://github.com/login/oauth/authorize?client_id={clientId}&redirect_uri={redirectUri}&state={state}。ターゲットのソーシャルプラットフォームの開発者ドキュメントを参照して、正しい URI を取得してください。
- authorizationCallbackHandler: 認可 (Authorization) コールバック URI で返されたパラメーター値を保護し、認可 (Authorization)- codeを抽出し、潜在的なエラーを処理します。
- getAccessToken: 認可 (Authorization)- codeをアクセス トークンに交換します。
- getUserInfo: アクセス トークンを使用してサードパーティのソーシャルプラットフォームからユーザー情報を取得します。
他の一般的なロジックのほとんどは Logto コネクターキットで処理されているため、作業が容易になります。
最後に、ファイルの最後で、GitHub コネクターと同じコード構造に従ってコネクターオブジェクトをエクスポートするだけです。
const createGithubConnector: CreateConnector<SocialConnector> = async ({ getConfig }) => {
  return {
    metadata: defaultMetadata,
    type: ConnectorType.Social,
    configGuard: githubConfigGuard,
    getAuthorizationUri: getAuthorizationUri(getConfig),
    getUserInfo: getUserInfo(getConfig),
  };
};
ステップ 3: コネクターをテストする
ユニットテスト
まず、いくつかのユニットテストケースを書き、基本的な機能が期待通りに動作することを確認します。
ローカルテスト
- ローカル環境で Logto をセットアップする:Logto はローカルで実行するためのいくつかの方法を提供しています。CLI を使用するか、docker を使用するか、ソースコードからビルドすることができます。詳細については、ドキュメントを確認してください 詳細はこちら。
- カスタムコネクターを Logto インスタンスにリンクする:CLI を使用して、コネクターのシンボリックリンクを Logto インスタンスに作成します。詳細はこちら。
cd logto
 npx @logto/cli connector link -p .
- コネクターをリンクした後、<logto-root-path>/packages/core/connectorsフォルダーに表示されるはずです。
- Logto インスタンスを再起動し、Logto 管理コンソールに移動すると、ソーシャルコネクターのリストに表示されるはずです。
- Console > Sign-in experience > Sign-up and sign-in > ソーシャルサインインでコネクターを設定します。そして、「ライブプレビュー」機能を使用してデモアプリで試してみてください。