Login Widget SDK APIコールの使用方法
以下の場合で、ログインウィジェットからLogin Widget SDK APIコールを別に扱うことができます:
- 自分のウィジェットを使用する
- ログインウィジェットフローを部分的に実装する
お知らせ
すべてのAPIコールがこのシナリオをサポートしているわけではありません。
コードの初期化
Login Widget SDK APIコールをウィジェットなしで使用するには、以下のコードを<body>
タグに接続します:
Copy
<script>
const api = new XsollaLogin.Api({
projectId: 'someProjectId'
});
</script>
npm-packageを使用する場合の初期化コード:
Copy
import XsollaLogin from '@xsolla/login-sdk';
const api = new XsollaLogin.Api({
projectId: 'someProjectId'
});
初期化コードでは、以下のパラメータが渡されます:
パラメータ | 種類 | 説明文 |
---|---|---|
projectId | string | アドミンページからのログインプロジェクトのID。必須。 |
fullLocale | string | <language code>_<country code> フォーマットのインターフェース言語と地域、そこで:
このパラメータは、指定された地域での使用頻度によるソーシャルネットワークのソートや、ユーザーに送信されるメール言語に影響します。 |
callbackUrl | string | ログインまたはサインアップが成功した場合にエクソーラログインサーバーが機能するURL。 |
emailTemplate | string | ユーザーにメールを送信するためのプロジェクト名。 |
payload | string | コードで渡すことのできる追加データ。このデータは、ログイン成功後にユーザーJWTに追加されます。 |
with_logout | boolean | 新規ログイン時に以前のトークンを取り消すかどうか。 デフォルトではfalse です。 |
clientId | string | クライアントアプリのID。アプリでOAuth 2.0プロトコルベースの認証が使用されている場合に渡されます。 |
scope | string | アプリによって要求されたユーザーアカウントに関する追加情報。アプリでOAuth 2.0プロトコルベースの認証が使用されている場合に渡されます。 可能な値:
|
state | string | CSRF攻撃などを防ぐための追加のユーザー認証です。8文字以上でなければなりません。 |
redirectUrl | string | ユーザーがアカウントを確認、ログイン、またはパスワードのリセットを確認した後、ユーザーがリダイレクトされるURL。 |
disableConfirmByLink | boolean | ユーザーがメールまたは電話によるパスワードなしでログインした際に、電子メール内のリンクによるパスワードなし認証の確認を無効にするかどうか。デフォルトではfalse です。 |
is_oauth2 | boolean | OAuth 2.0プロトコルベースの認証をユーザーに使用するかどうか。デフォルトではfalse です。 |
APIコール
以下のLogin Widget SDK APIコールは、ログインウィジェットがなくても使用できます:
パスワードによるユーザー登録
コール | 説明 | パラメータ |
---|---|---|
api.signup(userInfo); | 新しいユーザを登録します。ユーザに関するデータは、登録時にuserInfo オブジェクトに渡されます。登録されたユーザのトークンはレスポンスに渡されます。 |
|
Copy
let result
// Request
api.signup({
userInfo: {
email: 'email@address.com',
fields: {
nickname: 'Johny'
},
password: 'password123',
username: 'John'
}
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
パスワードによるログイン
コール | 説明 | パラメータ |
---|---|---|
api.login(credentials); | パスワードを使用してユーザーを認証します。ユーザーログインに必要なユーザーに関するデータは、credentials オブジェクトに渡されます。認証されたユーザーのトークンがレスポンスに渡されます。 |
|
Copy
let result
// Request
api.login({
credentials: {
password: 'password123',
username: 'email@address.com'
}
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
// Response with additional fields
result === {
ask_fields: [{
confirmation_type: 'code' || 'link'
name: 'phone_number'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'phone'
validation: {} // Custom validation
}]
login_url: 'https://someurl.com?token=XXXXXXX',
token: 'sometoken'
}
アカウント確認
コール | 説明 | パラメータ |
---|---|---|
api.resendEmail(username); | 追加のアカウント確認メールを送信します。アカウントを確認するには、ユーザーはメール内のリンクをクリックする必要があります。ユーザーのメールアドレスは、username オブジェクトで渡されます。標準コード204が応答で返されます。 |
|
Copy
let result
// Request
api.resendEmail({
username: 'email@address.com'
}).then((res) => {
res.code === 204;
})
パスワードレス認証
ユーザーフロー:- ユーザーは、電話番号やメールアドレスを入力します。入力された認証情報に応じて、
api.phoneGetCode
またはapi.emailGetCode
のいずれかが呼び出されます。 - サーバーはそのデータを受け取り、コードを記載したメールまたはSMSをユーザーに送信します。コードの初期化時に、電子メール内のリンクによるログイン確認を無効にする
disableConfirmByLink=true
パラメータが渡されると、リンクをクリックした後のユーザーの自動リダイレクトにapi.getConfirmCode
コールが使用されます。 api.phoneGetCode
またはapi.emailGetCode
コールは、api.loginWithPhoneCode
またはapi.loginWithEmailCode
コールによる電話番号またはメールアドレスの確認に使用したoperation_id
パラメータを返します。- メールアドレスまたは電話番号の確認に成功すると、
token
パラメータを持つURLが返されます。このトークンは、ユーザーに関する追加データのリクエストに使用されます。
コール | 説明 | パラメータ |
---|---|---|
api.phoneGetCode({ phone_number, link_url, isOauth2 }); | 電話番号に確認コードを送信します。電話番号の確認に使用したoperation_id パラメータがレスポンスに返されます。 |
|
Copy
let result
// Request
api.phoneGetCode({
phone_number: '+somenumber',
link_url: 'https://someurl.com',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
operation_id: '2334j255fdf13d515fgd1'
}
コール | 説明 | パラメータ |
---|---|---|
api.phoneGetCode({ phone_number, link_url, isOauth2 }); | メールアドレスに確認コードを送信します。メールアドレスの確認に使用したoperation_id パラメータがレスポンスに返されます。 |
|
Copy
let result
// Request
api.emailGetCode({
email: 'email@address.com',
link_url: 'https://someurl.com',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
operation_id: '2334j255fdf13d515fgd1'
}
コール | 説明 | パラメータ |
---|---|---|
api.getConfirmCode({ cancelToken, login, operation_id }); | ユーザーがリンクをクリックした後に、自動的にリダイレクトするための確認コードを取得します。 |
|
Copy
let result
// Request
const axiosCancelToken = Axios.CancelToken.source();
api.getConfirmCode({
cancelToken: axiosCancelToken,
login: '+somenumber' || 'email@address.com',
operation_id: '334j255fdf13d515fgd1'
}).then((res) => {
result = res;
})
// Response
result === {
code: 'string'
}
// If the waiting time has elapsed, returns:
result === {
error: {
code: '010-050',
description: 'Deadline exceeded.'
}
}
// If you no longer need to wait for verification through the link you can close the request waiting period:
axiosCancelToken.cancel();
コール | 説明 | パラメータ |
---|---|---|
api.loginWithPhoneCode({ phone_number, code, operation_id, isOauth2 }); | 電話番号を確認します。レスポンスには、token パラメータを持つURLが返されます。これは、ユーザーに関する追加データのリクエストに使用されます。 |
|
Copy
let result
// Request
api.loginWithPhoneCode({
phone_number: 'email@address.com',
code: '3423',
operation_id: '334j255fdf13d515fgd1',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
// Response with additional fields
result === {
ask_fields: [{
confirmation_type: 'code' || 'link'
name: 'email'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'email'
validation: {} // Custom validation
}]
login_url: 'https://someurl.com?token=XXXXXXX',
token: 'sometoken'
}
コール | 説明 | パラメータ |
---|---|---|
api.loginWithEmailCode({ email, code, operation_id, isOauth2 }); | メールアドレスを確認します。レスポンスには、token パラメータを持つURLが返されます。これは、ユーザーに関する追加データのリクエストに使用されます。 |
|
Copy
let result
// Request
api.loginWithEmailCode({
email: 'email@address.com',
code: '3423',
operation_id: '334j255fdf13d515fgd1',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
// Response with additional fields
result === {
ask_fields: [{
confirmation_type: 'code' || 'link'
name: 'phone_number'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'phone'
validation: {} // Custom validation
}]
login_url: 'https://someurl.com?token=XXXXXXX',
token: 'sometoken'
}
パスワードなしでのフィールド追加リクエスト
ユーザーフロー:- ユーザーの認証に成功した後、
api.loginWithEmailCode
またはapi.loginWithPhoneCode
のコールは、アプリ内で別のフォームで表示できるフィールドの配列を返し、さらにユーザーの電話番号とメールアドレスを収集します。また、api.getAskFields
コールを実行することで、フィールドのリストを取得することができます。 - ユーザーは、電話番号やメールアドレスを入力します。
api.ask
が実行されます。 - データを受け取ったサーバーは、電話番号やメールアドレスに確認コードを送信します。コードの初期化時に、メール内のリンクによるログイン確認を無効にする
disableConfirmByLink=true
パラメータが渡された場合、リンクをクリックした後の自動ユーザーリダイレクトにapi.getConfirmCode
コールが使用されます。 api.ask
コールは、api.loginWithPhoneCode
またはapi.loginWithEmailCode
コールによる電話番号またはメールアドレスの確認に使用されるoperation_id
パラメータを返します。- 認証されたユーザーへのリダイレクトに使用されるURLは、データの確認に成功した後に返されます。
コール | 説明 | パラメータ |
---|---|---|
api.getAskFields(token); | 追加リクエストのフィールドのリストを取得します。 |
|
Copy
let result
// Request
api.getAskFields({
token: 'sometoken'
}).then((res) => {
result = res;
})
// Response
result === [
{
confirmation_type: 'code' || 'link'
name: 'phone_number' || 'email'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'phone' || 'email'
validation: {} // Custom validation
}
]
コール | 説明 | パラメータ |
---|---|---|
api.ask({ fields, token, link_url }); | ユーザーに関する追加データ — 電話番号またはメールアドレスを送信します。指定された電話番号やメールアドレスを確認するためのoperation_id パラメータがレスポンスに返されます。確認が不要な場合は、認証済みユーザーへのリダイレクトに使用されるtoken パラメータを持つURLをレスポンスに返します。 |
|
Copy
let result
// Request
api.ask({
fields: {
phone_number: '+somenumber'
},
link_url: 'https://someurl.com',
token: 'sometoken'
}).then((res) => {
result = res;
})
// Response
result === {
error: {
code: '003-014'
description: 'Confirm phone number.'
details: { operation_id: 'BPaBScLM44GesoOYSxT5I8QfgIrTSURd' }
}
}
// Response without confirmation
result === {
redirect_url: '<login_url>?token=<token>'
}
メールアドレスを送信する場合の例:
Copy
let result
// request
api.ask({
fields: {
email: 'email@address.com'
},
link_url: 'https://someurl.com',
token: 'sometoken'
}).then((res) => {
result = res;
})
// Response
result === {
error: {
code: '003-011'
description: 'Confirm email.'
details: { operation_id: 'BPaBScLM44GesoOYSxT5I8QfgIrTSURd' }
}
}
// Response without confirmation
result === {
redirect_url: '<login_url>?token=<token>'
}
コール | 説明 | パラメータ |
---|---|---|
api.getConfirmCode({ cancelToken, login, operation_id }); | リンクをクリックした後、ユーザーを自動的にリダイレクトするための確認コードを取得します。 |
|
Copy
let result
// Request
const axiosCancelToken = Axios.CancelToken.source();
api.getConfirmCode({
cancelToken: axiosCancelToken,
login: '+somenumber' || 'email@address.com',
operation_id: '334j255fdf13d515fgd1'
}).then((res) => {
result = res;
})
// Response
result === {
code: 'string'
}
// If the waiting time has elapsed, returns:
result === {
error: {
code: '010-050',
description: 'Deadline exceeded.'
}
}
// If you no longer need to wait for verification through the link you can close the request waiting period:
axiosCancelToken.cancel();
コール | 説明 | パラメータ |
---|---|---|
api.loginWithPhoneCode({ phone_number, code, operation_id, isOauth2 }); | 電話番号を確認します。レスポンスには、token パラメータを持つURLが返されます。これは、ユーザーに関する追加データのリクエストに使用されます。 |
|
Copy
let result
// Request
api.loginWithPhoneCode({
phone_number: 'email@address.com',
code: '3423',
operation_id: '334j255fdf13d515fgd1',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
// Response with additional fields
result === {
ask_fields: [{
confirmation_type: 'code' || 'link'
name: 'email'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'email'
validation: {} // Custom validation
}]
login_url: 'https://someurl.com?token=XXXXXXX',
token: 'sometoken'
}
コール | 説明 | パラメータ |
---|---|---|
api.loginWithEmailCode({ email, code, operation_id, isOauth2 }); | メールアドレスを確認します。レスポンスには、token パラメータを持つURLが返されます。これは、ユーザーに関する追加データのリクエストに使用されます。 |
|
Copy
let result
// Request
api.loginWithEmailCode({
email: 'email@address.com',
code: '3423',
operation_id: '334j255fdf13d515fgd1',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
// Response with additional fields
result === {
ask_fields: [{
confirmation_type: 'code' || 'link'
name: 'phone_number'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'phone'
validation: {} // Custom validation
}]
login_url: 'https://someurl.com?token=XXXXXXX',
token: 'sometoken'
}
パスワードのリセット
ユーザーフロー:- アプリケーションがフォームを開き、ユーザーが電子メールアドレスまたはユーザー名を入力します。
api.reset
コールが実行されます。 - サーバーはユーザーに確認メールを送信します。
- ユーザーはメール内のリンクをクリックして、新しいパスワードを入力するフォームを開きます。
- ユーザーが新しいパスワードを入力します。
api.set
コールが実行されます。
コール | 説明 | パラメータ |
---|---|---|
api.reset(username); | パスワードをリセットし、アクションを確認します。パスワードリセットを確認するためには、ユーザはメール内のリンクをクリックする必要があります。ユーザ名またはユーザの電子メールアドレスは、username オブジェクトで渡されます。レスポンスには204 コードが返されます。 |
|
Copy
let result
// Request
api.reset({
username: 'John'
}).then((res) => {
res.code === 204;
})
コール | 説明 | パラメータ |
---|---|---|
api.set({ new_password, reset_code, user_id }); | 新しいパスワードを設定し、アクションを確認します。新しいパスワードを確認するには、ユーザーはメール内のリンクをクリックする必要があります。レスポンスには204 コードが返されます。 |
|
Copy
let result
// Request
api.set({
new_password: 'newpass',
reset_code: '3423',
user_id: '324324234'
}).then((res) => {
res.code === 204;
})
シングルサインオン
お知らせ
詳しくは、シングルサインオンについての説明をご覧ください。
パラメータ | 種類 | 説明文 |
---|---|---|
api.checkUserAuthSSO(); | ユーザがシングルサインオンで認証されているかどうかを確認します。成功すると、1回限りのcode が返されます。 |
Copy
let result
// Request
api
.checkUserAuthSSO()
.then(res => {
result === res;
});
result === {
code: "examplecode"
}
コール | 説明 | パラメータ |
---|---|---|
api.userAuthSSOWithRedirect(loginUrl); | ユーザーがシングルサインオンで認証されたかどうかを確認します。認証に成功した場合は、認証コードを含む生成されたloginUrl のURLにリダイレクトされます。 |
|
Copy
// Request
api
.userAuthSSOWithRedirect(
loginUrl: 'some-redirect-url.com'
)
.then(res => {
res.code === 302;
});
コール | 説明 | パラメータ |
---|---|---|
api.logout(token, session); | システムのユーザーをログアウトし、session パラメータに従ってユーザーセッションを削除します。 |
|
Copy
// Request
api
.logout(
token: 'exampleToken',
session: 'sso' | 'all'
)
.then(res => {
res.code === 204;
});
パラメータ | 種類 | 説明文 |
---|---|---|
api.clearSSO(); | 現在のユーザーのデバイスからシングル サインオンクッキーファイルを削除します。呼び出しが成功すると、応答で204 コードが返されます。 |
Copy
// Request
api
.clearSSO()
.then(() => {
// Success
});
この記事は役に立ちましたか?
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。