ウィジェット堂 - Notion 向けウィジェット・動くアイコン・スタートページ・マイページ

開発者向け「%BRAND% でログイン」(OAuth 2.1 / OpenID Connect)

標準の OAuth 2.1 と OpenID Connect で、あなたのアプリに「%BRAND% でログイン」を追加します。アプリの作成、PKCE、JWKS による ES256 の ID トークンの検証、許可されたスコープでの API 呼び出しを説明します。

開発者コンソールでは誰でもアプリを作成し、%BRAND% のアカウントでログインしてもらえます。%BRAND% にログイン済みの人は「許可」を押すだけです。見せる情報は本人が選び、アカウント → アプリと API からいつでも連携を解除できます。

1. アプリを作成

/developers で「新しいアプリ」を押し、次を入力します。

  • 名前、アイコン、ホームページとプライバシーポリシーの URL(必須)。同意画面に表示されます。
  • リダイレクト URI(1 行に 1 つ)。完全一致が必要です。ワイルドカード、末尾のスラッシュの違い、クエリの違いはすべて不可です。https のみで、ネイティブアプリはループバック(http://127.0.0.1/...、ポートは任意)とカスタムスキームも使えます。
  • アプリの種類:「サーバーアプリ」には client secret が発行されます(表示は 1 回だけ、保存はハッシュのみ)。「ブラウザ / ネイティブアプリ」にはシークレットはありません。

無料プランでは 3 個、Pro では 10 個まで作成できます。新しいアプリには「未確認」と表示され、審査されるまで利用者は 100 人までです。

2. 認可画面へ移動

GET https://widgetstore.net/oauth/authorize
  ?response_type=code
  &client_id=wsc_...
  &redirect_uri=https://example.com/auth/callback
  &scope=openid profile email
  &state=<ランダム>
  &nonce=<ランダム>
  &code_challenge=<BASE64URL(SHA256(verifier))>
  &code_challenge_method=S256
  • すべてのアプリで PKCE(S256)が必須です。 サーバーアプリも同じです。
  • 戻ってきた state が同じか確認してください(CSRF 対策)。iss も返します。
  • prompt=none は画面を出さずに確認します。ログイン済みで同意済みならコードを返し、そうでなければ login_required か consent_required を返します。prompt=consent は必ず同意画面を表示します。

3. コードを交換

POST https://widgetstore.net/widget/api/oauth/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic base64(client_id:client_secret)   # サーバーアプリのみ

grant_type=authorization_code&code=...&code_verifier=...&redirect_uri=...

access_token(1 時間)、refresh_token(使うたびに新しくなり、古いものを再利用すると認可全体が取り消されます)、id_token が返ります。コードは 1 回だけ使え、10 分で期限切れになります。

4. ID トークンを検証

  • ES256 で署名しています。公開鍵は https://widgetstore.net/widget/api/oauth/jwks(kid で選択)。
  • iss が https://widgetstore.net、aud があなたの client ID であること、exp、nonce が一致することを確認してください。
  • sub はあなたのアプリ専用です。同じ人でもほかのアプリでは別の sub になるため、アプリ間で人を結び付けることはできません。
  • クレームは本人が許可したスコープに応じます。profile → name、picture、email → email、email_verified。

ディスカバリー:https://widgetstore.net/.well-known/openid-configuration。UserInfo:アクセストークンで GET https://widgetstore.net/widget/api/oauth/userinfo。

スコープ

スコープ取得できるもの
openidログインに必須
profileニックネームとアイコン
email確認済みのメールアドレス
read、write:*オープン API と MCP でウィジェット、ページ、データを読み書き

ルール

  • 必要なスコープだけを求めてください。profile と email は本人が外せます。
  • %BRAND% のパスワードやメールの確認コードを尋ねないでください。
  • あなたのアプリでログアウトしたらトークンを取り消してください:POST https://widgetstore.net/widget/api/oauth/revoke。
  • 誤解を招くアプリやデータを悪用するアプリは停止することがあります。停止中は新しい認可もトークンの更新もできません。

最終更新:2026年11月14日