在 API 客户机中使用 QRLogin

要使用 qrlogin 免密 API 作为应用程序(API 客户机)的认证方法,请遵循先决条件并使用 Client for URL (cURL) 来获取或发送 API 请求。

过程

要在 API 客户机中使用 QRCode 登录,请按照以下步骤操作。
  1. 遵守先决条件。
  2. 启动新的 QR 登录。 请参阅 “启动新的 QRLogin”
  3. 轮询现有 QR 登录验证的完成情况。 请参阅 “Poll”以完成现有的QRLogin验证
  4. 检验现有 QR 登录验证。 请参阅 “验证现有 QRLogin 验证 ”。
  5. 检索成功验证的 QR 登录请求。 参见 “成功检索已验证的二维码登录请求 ”。
  6. 删除特定验证。 请参阅 “删除二维码登录验证”

启动新 QRLogin

要创建新的 QR 码登录验证记录,请使用以下 cURL 命令来启动新的 QR 登录验证请求。
注意: 请将 {{profile.id}} 替换为有效的 IBM Verify 注册的个人资料标识符。 请参阅 “管理注册配置文件 ”。
cURL 命令
'https://{{tenant}}/v2.0/factors/qr/authenticate?profileId={{profile.id}}' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
示例
curl -X GET \
  'https://companyAppTest.verify.ibm.com/v2.0/factors/qr/authenticate?profileId=9fe42f1c-3d22-4d2c-99a0-8ff08c93c4b0' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
示例输出响应
{
    "lsi": "zj4lyRfYFlnJcxZYPxKJXR0OB",
    "created": "2019-04-01T00:35:18.951Z",
    "type": "qr",
    "serviceName": "IBM Verify",
    "qrCode": " iVBORw0KEUgAAASwAAAEsCAIAAAD2HxkiA",
    "profileId": "9fe42f1c-3d22-4d2c-99a0-8ff08c93c4b0",
    "location": "https://companyAppTest.verify.ibm.com/v2.0/factors/qr/77348a7f-03b2-494f-a5d4-9a1603ae1592",
    "id": "77348a7f-03b2-494f-a5d4-9a1603ae1592",
    "expiry": "2019-04-01T00:36:18.951Z",
    "state": "PENDING",
    "dsi": "NxyVx0412btOrdx1xZJqTPfVPoCRHq3wG1s5udzt",
    "updated": "2019-04-01T00:35:18.951Z",
    "tenant": " companyAppTest.verify.ibm.com "
}
注意: 请将 Base64-encoded 中的 b64QRCode 值复制并粘贴到二维码文本转换器中,以生成二维码图像。

轮询现有 QRLogin 验证的完成情况

要从未认证的上下文中轮询现有 QR 登录验证的完成情况,请使用以下 cURL 命令来检索 qrlogin 请求。

cURL 命令
curl -X GET \
  'https://{{tenant}}/v2.0/factors/qr /{{qrlogin.ci.id}}?dsi={{qrlogin.dsi}}' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
注意: 请将 {{qrlogin.ci.id}}{{qrlogin.dsi}} 替换为发起新的 qrlogin 请求时返回的云标识符 ID 和设备会话索引的值。
示例
curl -X GET \
  'https://companyAppTest.verify.ibm.com/v2.0/factors/qr/authenticate/77348a7f-03b2-494f-a5d4-9a1603ae1592?dsi=IJL1IM9GFJLL3NK39MM2E3HN39IGH8LENENGIG2G' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
示例输出响应
{
    "created": "2019-04-01T00:42:44.456Z",
    "profileId": "9fe42f1c-3d22-4d2c-99a0-8ff08c93c4b0",
    "location": "https://companyAppTest.verify.ibm.com/v2.0/factors/qr/77348a7f-03b2-494f-a5d4-9a1603ae1592",
    "id": "77348a7f-03b2-494f-a5d4-9a1603ae1592",
    "expiry": "2019-04-01T00:43:44.456Z",
    "state": "PENDING",
    "type": "qr",
    "serviceName": "IBM Verify",
    "updated": "2019-04-01T00:42:44.456Z",
    "tenant": "companyAppTest.verify.ibm.com"
}

检验现有 QRLogin 验证

需要有 verifyAuthenticator API 安全性权利,才能检验现有 QRLogin 验证。

要检验现有 QRLogin 验证,请创建 verify-qrlogin-payload.json 文件,其中包含:
{
	"lsi": "{{qrlogin.lsi}}"
}
注意: 请将 {{qrlogin.lsi}} 替换为您在发起新 qrlogin 请求后收到的登录会话索引(LSI)的数字。 LSI 的长度是基于配置的变量。 例如,
{
  "lsi": “B1CAE3”
}
cURL 命令
curl -X POST \
  https://{{tenant}}/v2.0/factors/qr/{{qrlogin.ci.id}} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {{authenticator_access_token}}' \
  -H 'Content-Type: application/json' \
  -d @verify-qrlogin-payload.json
注意:
  • authenticator_access_token 一定就是注册时 IBM Verify 用的那个。
  • 请将 {{qrlogin.ci.id}} 替换为启动新 qrlogin 请求时返回的云标识的值。
示例
curl -X POST \
  https://companyAppTest.verify.ibm.com/v2.0/factors/qr/77348a7f-03b2-494f-a5d4-9a1603ae1592 \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer 4hFZq9U73P3MPEA40KcF54i77Z0mDhZba0InrzUe' \
  -H 'Content-Type: application/json' \
  -d @verify-qrlogin-payload.json
示例输出响应
Status Code: 204

检索成功验证的 QR 登录请求

要从未认证的上下文中轮询现有 QR 登录验证的完成情况,请使用以下 cURL 命令来检索 qrlogin 请求。

cURL 命令
curl -X GET \
  'https://{{tenant}}/v2.0/factors/qr /{{qrlogin.ci.id}}?dsi={{qrlogin.dsi}}' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
注意: 请将 {{qrlogin.ci.id}} 替换为发起新 qrlogin 请求时返回的云标识符 ID 的值。
示例
curl -X GET \
  'https://companyAppTest.verify.ibm.com/v2.0/factors/qr/authenticate/77348a7f-03b2-494f-a5d4-9a1603ae1592?dsi=IJL1IM9GFJLL3NK39MM2E3HN39IGH8LENENGIG2G' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'
示例输出响应
{
    "updatedBy": "50FNK72W4C",
    "created": "2019-04-01T00:45:13.441Z",
    "profileId": "9fe42f1c-3d22-4d2c-99a0-8ff08c93c4b0",
    "location": "https://companyAppTest.verify.ibm.com/v2.0/factors/qr/77348a7f-03b2-494f-a5d4-9a1603ae1592",
    "id": "9df8af9c-b5eb-4b47-b518-725ac43ccccc",
    "expiry": "2019-04-01T00:46:13.441Z",
    "state": "SUCCESS",
    "type": "qr",
    "serviceName": "IBM Verify",
    "userId": "50FNK72W4C",
    "updated": "2019-04-01T00:45:19.256Z",
    "tenant": "companyAppTest.verify.ibm.com"
}

删除 QR 登录验证

需要有 authnAnyUser API 安全性权利,才能删除现有 QRLogin 验证。

要删除 qrlogin 验证记录,请使用以下 cURL 命令。

cURL 命令
curl -X DELETE \
  https://{{tenant}}/v2.0/factors/qr/{{qrlogin.ci.id}} \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer {{access_token}}' \
  -H 'Content-Type: application/json'
注意: 请将 {{qrlogin.ci.id}} 替换为发起新 qrlogin 请求时返回的云标识符 ID 的值。
示例
curl -X DELETE \
  https://companyAppTest.verify.ibm.com/v2.0/factors/qr/9df8af9c-b5eb-4b47-b518-725ac43ccccc \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer 4hFZq9U73P3MPEA40KcF54i77Z0mDhZba0InrzUe ' \
  -H 'Content-Type: application/json'
示例输出响应
Status Code: 204