Skip to content

status+me.virmesh.success.challengeIssued

チャレンジが発行され、`challengeToken` と type-specific payload が返却されたことを示します。

successdraft

Description

me.virmesh.register.startChallenge が正常終了し、 以降の検証や me.virmesh.register.getChallengeStatus のポーリングに使うトークンが発行され、 challenge 起動に必要な type-specific payload も返されたときに返します。

When this happens

  • payload の型検証が通る
  • 要求された challengeType がサーバでサポートされている

Payload

payload.challengeTokenstringRequired

チャレンジの識別子。getChallengeStatus に渡します。

payload.challenge.typestringRequired

開始された challenge の semantic type です。enum+<reverse-domain>.register.challengeType.<name> 形式の open enum を返します。

payload.challenge.payloadobjectRequired

challenge 起動用の type-specific payload です。owner-defined な unknown type の場合も opaque object として返ります。

payload.challenge.payload.urlstringOptional

payload.challenge.typeenum+me.virmesh.register.challengeType.web_browser のときに返る URL です。

payload.challenge.payload.challengestringOptional

payload.challenge.typeenum+me.virmesh.register.challengeType.proof_of_work のときに返る計算対象文字列です。

payload.challenge.payload.difficultyintegerOptional

payload.challenge.typeenum+me.virmesh.register.challengeType.proof_of_work のときに返る difficulty です。

Examples

challenge issued

{
  "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"
      }
    }
  }
}

Client handling

  • challengeToken を保存し、チャレンジ完了まで me.virmesh.register.getChallengeStatus でポーリングする
  • challenge.type を見て client 側でフローを分岐する
  • unknown type は opaque payload として扱い、未対応 client では unsupported 表示または開始不可にする
  • 続くフロー(例: me.virmesh.account.registerAccountKeypayload.challenge)にトークンを渡す

Related statuses

Referenced by

HTTPAPIAction
200me.virmesh.register.startChallengeme.virmesh.register.startChallenge