Appearance
me.virmesh.register.startChallenge
指定した種類のチャレンジを開始し、ポーリング用の challengeToken を発行します。
アカウント登録などで追加検証が必要な場合に、チャレンジフローを開始します。
返却された challengeToken で me.virmesh.register.getChallengeStatus をポーリングし、
status+me.virmesh.challenge.successChallenge になってから me.virmesh.account.registerAccountKey 等へ進めます。
成功時は payload.challenge.type と payload.challenge.payload も返し、
client は type ごとに起動フローを分岐します。unknown type の payload は
owner-defined extension として扱います。
Endpoint
Request schema
payload.challengeTypestringRequired開始するチャレンジの種類。me.virmesh.register.listChallengeTypes で取得した payload.challengeTypes[].id のいずれかを渡します。
payload.sent_atintegerRequiredクライアント送信時刻。UNIX epoch ミリ秒で送ります。
Request example
{
"payload": {
"challengeType": "web_browser",
"sent_at": 1770000000000
}
}Responses
200status+me.virmesh.success.challengeIssuedチャレンジが発行され、`challengeToken` と type-specific payload が返却されたことを示します。
status+me.virmesh.success.challengeIssuedチャレンジが発行され、`challengeToken` と type-specific payload が返却されたことを示します。
Response body
payload.challengeTokenstringRequired発行された challenge token です。me.virmesh.register.getChallengeStatus に渡します。
payload.challenge.typestringRequired開始された challenge の semantic type です。enum+<reverse-domain>.register.challengeType.<name> 形式の open enum を返します。
payload.challenge.payloadobjectRequiredtype-specific data を格納する extensible object です。unknown type の場合も opaque payload としてここに入ります。
Response example
{
"status": "status+me.virmesh.success.challengeIssued",
"payload": {
"challengeToken": "opaque-challenge-token",
"challenge": {
"type": "enum+me.virmesh.register.challengeType.web_browser",
"payload": {
"url": "https://challenge.example.com/session/opaque-challenge-token"
}
}
}
}me.virmesh.register.startChallenge が正常終了し、
以降の検証や me.virmesh.register.getChallengeStatus のポーリングに使うトークンが発行され、
challenge 起動に必要な type-specific payload も返されたときに返します。
400status+me.virmesh.json.invalid_jsonrequest body が JSON として解釈できないことを示します。
status+me.virmesh.json.invalid_jsonrequest body が JSON として解釈できないことを示します。
この status は body が壊れている、または JSON parser が受理できない形式で送られた場合に返ります。
Status payload
payload.messagestringRequired実装依存の詳細メッセージです。
malformed json
{
"status": "status+me.virmesh.json.invalid_json",
"payload": {
"message": "Request body must be valid JSON."
}
}400status+me.virmesh.json.invalid_payload`payload`がactionの期待する形式ではないことを示します。
status+me.virmesh.json.invalid_payload`payload`がactionの期待する形式ではないことを示します。
リクエストデータ自体はJSON objectとして解釈できたものの、 期待する形式と一致しない場合に使います。
Status payload
payload.messagestringRequired検証に失敗した理由を表す詳細メッセージです。
invalid payload
{
"status": "status+me.virmesh.json.invalid_payload",
"payload": {
"message": "送信されたペイロードが正しい形式ではありません。"
}
}501status+me.virmesh.action.not_supported要求した action が現在の server では利用できないことを示します。
status+me.virmesh.action.not_supported要求した action が現在の server では利用できないことを示します。
指定されたactionがサーバー上で無効化されており、使用できないことを示します。
Status payload
payload.messagestringRequired実装依存の詳細メッセージです。
action is disabled
{
"status": "status+me.virmesh.action.not_supported",
"payload": {
"message": "registerAccountKeyによる登録がサポートされていません。"
}
}