Skip to content

OAuth API

OAuthクライアントの設定については下記「NextAuthで使用できるproviderの設定」を参考にしてください

NextAuthで使用できるproviderの設定

v3の場合

jsx
{
  id: "vroid",
  name: "VRoid Hub",
  type: "oauth",
  version: "2.0",
  scope: "default",
  params: { grant_type: "authorization_code" },
  accessTokenUrl: "https://hub.vroid.com/oauth/token",
  requestTokenUrl: "https://hub.vroid.com/oauth/token",
  authorizationUrl: "https://hub.vroid.com/oauth/authorize?response_type=code",
  profileUrl: "https://hub.vroid.com/api/account",
  async profile(profile, tokens) {
    return {
      id: profile.data.user_detail.user.id,
      name: profile.data.user_detail.user.name,
      image: profile.data.user_detail.user.icon.sq170.url
    }
  },
  protection: ["state", "pkce"],
  headers: {
    "X-Api-Version": 11 //VRoid Hub独自
  },
  clientId: "",
  clientSecret: ""
}

認証開始のリクエスト

GET: /oauth/authorize

ヘッダー


X-Api-Version

必須: YES

  • VRoid HubのAPIバージョンです。現行バージョンは 11 になります。

リクエストパラメータ


response_type

必須: YES
型: string

  • このパラメータには必ず code を入力してください

client_id

必須: YES
型: string

redirect_uri

必須: YES
型: string

scope

必須: YES
型: string

state

必須: YES
型: string

  • CSRF (Cross-Site Request Forgery) 攻撃防止のために使用される文字列です。
  • 認証リクエスト送信時にランダムな文字列を動的に生成して送信してください。
  • コールバックURLで受け取ったstate値がここで送信した値と一致することを確認してください。

code_challenge

必須: YES
型: string

  • PKCE(Proof Key for Code Exchange)のチャレンジコードです。
  • code_verifier をSHA256でハッシュ化し、Base64 URLエンコードをした値を入力してください。

code_challenge_method

必須: YES
型: string

  • code_challenge の生成方法です。
  • SHA256を表す S256 のみ利用可能です。

レスポンス

302

  • VRoid Hubの認証ページにリダイレクトします。VRoid Hubでのユーザー認証後、 redirect_uri で設定されたURLに code パラメータとstateパラメータと共にリダイレクトされます

400

  • OAuth 2.0に準拠したエラーを返します

アクセストークンのリクエスト

POST: /oauth/token

ヘッダー


X-Api-Version

必須: YES

  • VRoid HubのAPIバージョンです。現行バージョンは 11 になります。

リクエストパラメータ


client_id

必須: YES
型: string

client_secret

必須: YES
型: string

redirect_uri

必須: YES
型: string

grant_type

必須: YES
型: string

  • authorization_code を入力してください。リフレッシュトークン利用時は refresh_token を入力してください

code

必須: YES
型: string

  • 「認証開始のリクエスト」時に redirect_uri で受け取った code を入力してください

code_verifier

必須: YES
型: string

  • PKCE(Proof Key for Code Exchange)の検証コードです。
  • 認証開始リクエスト時にクライアント側で生成・保持していたランダムな文字列(code_challenge の元となった値)を入力してください。
  • 値はRFC7636に準拠した形式である必要があります。
    • 使用可能な文字は [A-Z] / [a-z] / [0-9] / - / . / _ / ~ です。
    • 文字列の長さは最小43文字、最大128文字である必要があります。

refresh_token

必須: NO
型: string

  • grant_type = refresh_token の際に、リフレッシュトークンを入力してください

レスポンス

200

{
  "access_token": string,
  "token_type": string,
  "expires_in": number,
  "refresh_token": string
}
  • accsess_token の利用は、APIリクエスト時にヘッダーに Authorization: Bearer ${access_token} を追加してください

400

  • OAuth 2.0に準拠したエラーを返します

アクセストークンの取り消し

POST: /oauth/revoke

ヘッダー


X-Api-Version

必須: YES

  • VRoid HubのAPIバージョンです。現行バージョンは 11 になります。

リクエストパラメータ


client_id

必須: YES
型: string

client_secret

必須: YES
型: string

token

必須: YES
型: string

  • 取得済みのアクセストークンを使用し、ヘッダーに Authorization: Bearer ${access_token} を追加してください

レスポンス

200

  • OAuth 2.0に準拠したエラーを返します

400

  • OAuth 2.0に準拠したエラーを返します