在 API 客户机中使用 QRLogin
要使用 qrlogin 免密 API 作为应用程序(API 客户机)的认证方法,请遵循先决条件并使用 Client for URL (cURL) 来获取或发送 API 请求。
过程
要在 API 客户机中使用 QRCode 登录,请按照以下步骤操作。
- 遵守先决条件。
- 启动新的 QR 登录。 请参阅 “启动新的 QRLogin”。
- 轮询现有 QR 登录验证的完成情况。 请参阅 “Poll”以完成现有的QRLogin验证。
- 检验现有 QR 登录验证。 请参阅 “验证现有 QRLogin 验证 ”。
- 检索成功验证的 QR 登录请求。 参见 “成功检索已验证的二维码登录请求 ”。
- 删除特定验证。 请参阅 “删除二维码登录验证”。
启动新 QRLogin
要创建新的 QR 码登录验证记录,请使用以下 cURL 命令来启动新的 QR 登录验证请求。
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