ServiceLogin
最終更新: 2026年7月3日
ServiceLogin は、Space が自社プロダクトの end-user (ServiceUser) を OAuth で登録・ログインさせるための設定です。Weegloo プラットフォームアカウント (コンテンツスタジオにログインする Weegloo User) とは別の ID 体系をプロダクトに組み込む入口です。この設定から登録した会員は ServiceLogin の既定ロール (defaultRole) を受け取り、その会員のトークンは ACMA/ACDA に対して認証されます。
1 つの Space には ServiceLogin は最大 1 つだけ存在します。すでに存在する状態で作成 (POST) を再度呼び出すと WGL409003(409 Conflict)が返されます。そのため取得も loginId なしで GET .../service-login によってその 1 件を単一で取得します(リストエンドポイントはありません)。
リソース構造
以下は ServiceLogin 1 件のレスポンスです。sys (システム属性) に加えて、サービスの表示情報と登録動作を保持する本文属性 name・callbackUrl・contactEmail・approvalRequired を持ちます。
{
"sys": {
"id": "3trmXRM3RqbgSnifyg7PSlgn01Ex",
"type": "ServiceLogin",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"defaultRole": { "sys": { "id": "3trmXRLXeZN2RTHvVj3hFDN5546vbp", "type": "Refer", "targetType": "ServiceUserRole" } },
"providers": [
{ "registrationId": "google", "clientId": "821047-dailywear.apps.googleusercontent.com" }
],
"createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-18T12:55:00.000Z",
"updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"updatedAt": "2026-06-18T12:55:00.000Z",
"version": 1
},
"name": "DailyWear メンバーシップ",
"callbackUrl": "https://dailywear.example/auth/callback",
"contactEmail": "members@dailywear.example",
"approvalRequired": false
}主なキー:
defaultRole: 新たに登録した会員が既定で受け取る ServiceUserRole のReferです。会員ごとに異なるロールが必要な場合は、ServiceUser のroleOverrideで上書きします。providers: このサービスがサポートする OAuth プロバイダのリストです。各項目はregistrationId・clientId・clientSecretで構成されます。レスポンスにはclientSecretは含まれません。callbackUrl: 会員が OAuth ログインを完了した後に遷移する URL です。この URL に交換トークン (exchangeToken) がクエリ文字列として付与されて返ってきます。approvalRequired: 有効にすると、新規会員はログイン無効 (enableLogin=false) の状態で登録され、管理者の承認が必要になります。
システム属性 (sys)
すべての ServiceLogin は共通のシステム属性を sys オブジェクトに保持します。space・defaultRole・createdBy・updatedBy は Refer 形式 ({ "sys": { "id", "type": "Refer", "targetType" } }) で入ります。
| 属性 | 型 | 説明 |
|---|---|---|
id | string | リソース固有の識別子。 |
type | string | リソースの種類。ServiceLogin は常に "ServiceLogin"。 |
space | Refer<Space> | この設定が属する Space。 |
defaultRole | Refer<ServiceUserRole> | 新規登録会員が既定で受け取る ServiceUserRole。 |
providers | Provider 配列 | サポートする OAuth プロバイダのリスト。レスポンスの項目には clientSecret は含まれません。 |
createdBy | Refer<User> | この設定を作成した Weegloo User。 |
createdAt | string (date-time) | 作成日時。 |
updatedBy | Refer<User> | 最後に更新した Weegloo User。 |
updatedAt | string (date-time) | 最終更新日時。 |
version | integer | リソースのバージョン。更新時に X-Weegloo-Version ヘッダーに入れます。 |
ServiceLogin は設定リソースであるため、公開の概念がありません。publish・archive・status はなく、同時更新の競合を防ぐための version のみを持ちます。
本文属性と provider
| 属性 | 型 | 説明 |
|---|---|---|
name | string | サービスの表示名。 |
callbackUrl | string | OAuth ログイン完了後に遷移する URL。この URL に exchangeToken がクエリとして付与されて返ってきます。 |
contactEmail | string | サービス管理者の連絡先メールアドレス。 |
approvalRequired | boolean | true の場合、新規会員は enableLogin=false で開始し、管理者の承認が必要になります。既定値は false。 |
providers
providers は、このサービスがサポートする OAuth プロバイダのリストです。各 provider は以下の 3 つの値で構成されます。
| 属性 | 型 | 説明 |
|---|---|---|
registrationId | string | OAuth プロバイダの識別子。現在は google・github・facebook・gitlab・kakao・naver・line をサポートしています。 |
clientId | string | そのプロバイダで発行されたクライアント ID。 |
clientSecret | string | そのプロバイダで発行されたクライアントシークレット。書き込み専用のため、レスポンスには含まれません。 |
現在 WEEGLOO が OAuth エンドポイントを接続している registrationId は google・github・facebook・gitlab・kakao・naver・line の 7 つです。これ以外の値ではログインが動作しません。
provider は ServiceLogin の作成本文に含めて指定することも、後述の provider 追加・更新・削除エンドポイントで個別に管理することもできます。ServiceLogin の更新 (PUT) 本文には providers がないため、すでに作成した設定の provider は専用エンドポイントで扱います。
ServiceLogin は常に provider を 1 つ以上持つ必要があり、最大 10 個まで持つことができます。作成時には providers に最低 1 つを含める必要があります。最後に残った 1 つの provider は削除できず、削除しようとすると WGL422055(422)を返します。provider をすべて削除するには、ServiceLogin 自体を削除します。
リダイレクト URI の登録
各 provider (Google・GitHub・Facebook・GitLab・Kakao・Naver・LINE) のコンソールで OAuth アプリを作成する際、承認済みリダイレクト URI (redirect URI) を WEEGLOO が使う値とまったく同じに登録する必要があります。値が異なると、ログインが redirect_uri mismatch で失敗します。
登録する URI は以下の形式です。
https://auth.weegloo.com/v1/spaces/{spaceId}/login/oauth2/code/{registrationId}
{spaceId}: この ServiceLogin が属する Space のsys.id。{registrationId}: provider の識別子 (google・github・facebook・gitlab・kakao・naver・line)。
たとえば Space HnQ32YiH に Google を接続する場合は、https://auth.weegloo.com/v1/spaces/HnQ32YiH/login/oauth2/code/google を登録します。
API
以下のすべてのエンドポイントのベース URL は https://cma.weegloo.com/v1 であり、Authorization ヘッダーに CMA を認証する Bearer トークンが必要です。更新 (PUT・PATCH) と provider 管理エンドポイントは、同時更新の競合を防ぐために現在の sys.version を X-Weegloo-Version ヘッダーに載せる必要があります。作成と ServiceLogin の削除にはこのヘッダーはありません。取得は loginId なしでその Space の ServiceLogin 1 件を取得します。
関連ドキュメント
- ServiceUserRole:
defaultRoleとして付与する権限のまとまり。 - ServiceUser: この設定から登録した会員。
- Auth API: 会員の OAuth ログイン・トークン交換フロー。
