認証
訪問者トークンを渡すか認証付きアクセスを使用して認証が必要なサイトで Docs Embed を利用する
GitBookドキュメントが認証を必要とする場合(例:OIDC、Auth0、またはカスタムバックエンドを介した訪問者認証)、ユーザーの認証トークンが提供されない限り埋め込みはドキュメントのコンテンツにアクセスできません。
2つの方法があります:
トークンを直接渡す (推奨)- 訪問者トークンで埋め込みを初期化する
クッキー検出を使用する - 読み込み前にクッキー内のトークンを確認する
方法1:トークンを直接渡す(推奨)
埋め込みを初期化する際に、訪問者トークンを直接渡します:
<script src="https://docs.company.com/~gitbook/embed/script.js?jwt_token=your-jwt-token"></script>
<script>
window.GitBook(
"init",
{ siteURL: "https://docs.company.com" },
{ visitor: { token: "your-jwt-token" } }
);
window.GitBook("show");
</script>import { createGitBook } from "@gitbook/embed";
const gitbook = createGitBook({
siteURL: "https://docs.company.com",
});
const iframe = document.createElement("iframe");
iframe.src = gitbook.getFrameURL({
visitor: {
token: "your-jwt-token",
unsignedClaims: { userId: "123", plan: "premium" },
},
});方法2:クッキーに基づく検出
ドキュメントサイトが訪問者トークンをクッキーに保存している場合(例: gitbook-visitor-token)、埋め込みを読み込む前にそれを確認できます。
ユーザーが認証されたドキュメントにサインインすると、GitBookはブラウザのクッキーにキーとして訪問者トークンを保存します gitbook-visitor-token。埋め込みはドキュメントからコンテンツを取得するためにこのトークンを必要とします。
フロー:
ユーザーがあなたのドキュメントサイトにサインインする
GitBookがブラウザのクッキーに訪問者トークンを保存する
あなたのアプリがトークンを確認する
トークンが存在する場合、埋め込みを読み込みトークンを渡す
トークンが存在しない場合、ユーザーにサインインを促す
NPMパッケージを使用する場合、初期化前にトークンを確認してください:
Reactアプリの場合、トークンの有無に応じて埋め込みを条件付きでレンダリングしてください:
よくある落とし穴
サインイン前に埋め込みを読み込んでしまうこと – スクリプトやコンポーネントを読み込む前に常にトークンを確認するか、初期化時にトークンを直接渡してください。
ドメイン間でトークンが保持されないこと – ブラウザのセキュリティポリシーによりクッキーは異なるドメイン間で保持されません。アプリとドキュメントは同じドメインまたはサブドメイン上である必要があるか、トークンを直接渡してください。
トークンの有効期限切れ – トークンは期限切れになります。埋め込みが認証エラーを返す場合、ユーザーに再度サインインを促してください。
間違ったクッキー名の使用 – トークンはとして保存されます
gitbook-visitor-token、ではなくgitbook-tokenやその他のバリエーションではありません。init/getFrameURLにトークンを渡していない – クッキー方式を使用する場合、トークンをに渡すことを確認してください
GitBook('init', ..., { visitor: { token } })またはgetFrameURL({ visitor: { token } }).
デバッグ
トークンが存在するか確認するには、ブラウザコンソールを開いて次を実行します:
これが返された場合 undefined、ユーザーはまだドキュメントにサインインしていません。
次のステップ
埋め込みのカスタマイズ – ようこそメッセージやアクションを追加する
カスタムツールの作成 – 製品のAPIと統合する
Docs Embedドキュメント – 埋め込みガイド(完全版)
最終更新
役に立ちましたか?