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
- https://hub.vroid.com/oauth/applications/ で作成したアプリケーションのアプリケーションIDを入力してください
redirect_uri
必須: YES
型: string
- https://hub.vroid.com/oauth/applications/ で作成したアプリケーションのリダイレクトURIを入力してください
scope
必須: YES
型: string
- https://hub.vroid.com/oauth/applications/ で作成したアプリケーションのスコープを入力してください
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
- https://hub.vroid.com/oauth/applications/ で作成したアプリケーションのアプリケーションIDを入力してください
client_secret
必須: YES
型: string
- https://hub.vroid.com/oauth/applications/ で作成したアプリケーションのシークレットを入力してください
redirect_uri
必須: YES
型: string
- https://hub.vroid.com/oauth/applications/ で作成したアプリケーションのリダイレクトURIを入力してください
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
- https://hub.vroid.com/oauth/applications/ で作成したアプリケーションのアプリケーションIDを入力してください
client_secret
必須: YES
型: string
- https://hub.vroid.com/oauth/applications/ で作成したアプリケーションのシークレットを入力してください
token
必須: YES
型: string
- 取得済みのアクセストークンを使用し、ヘッダーに
Authorization: Bearer ${access_token}を追加してください
レスポンス
200
- OAuth 2.0に準拠したエラーを返します
400
- OAuth 2.0に準拠したエラーを返します