Tính năng xác minh người dùng phụ cho phép bạn thêm các yếu tố bảo mật thứ hai vào lệnh thoại. Thao tác này giúp bạn tăng cường bảo mật cho một số thao tác như tắt camera hoặc mở cửa. Tính năng xác minh người dùng phụ không gắn với một đặc điểm cụ thể nào của thiết bị, cho phép bạn quyết định thời điểm có Google Assistant issue a challenge. For example, you can choose to issue a challenge for the OnOff trait for a security camera, but not issue a challenge for the OnOff trait for a light. You can also have Assistant issue challenges in certain situations for the same action. For example, you can request that Assistant issue a challenge request to open a door if an NFC keyfob is not in the proximity of that door, but not issue a challenge if the keyfob is present.
Assistant có thể đưa ra hai loại thử thách – xác nhận rõ ràng hoặc mã số nhận dạng cá nhân (PIN). Thao tác này sẽ thêm một khối xác thực vào ý định QUERY
và EXECUTE
được gửi từ Assistant trở lại thao tác của bạn, đồng thời chấp nhận phản hồi lỗi challengeNeeded
. Sau đó, Assistant sẽ gửi lại yêu cầu ý định đến
hành động của bạn kèm theo dữ liệu của thử thách trong khối thử thách. Sau đó, bạn có thể xác thực dữ liệu thử thách để xác định xem người dùng đã đưa ra phản hồi bảo mật chính xác hay chưa.
Assistant sử dụng hộp thoại để đưa ra thử thách, nhưng nếu bạn sử dụng Assistant trên các nền tảng không phải giọng nói, thì mã PIN và thông báo xác nhận đã được thực hiện trên màn hình.
Loại thiết bị được hỗ trợ
Xác minh người dùng phụ được hỗ trợ trên tất cả các loại thiết bị.
Các đặc điểm của thiết bị được hỗ trợ
Xác minh người dùng phụ được hỗ trợ cho tất cả các đặc điểm của thiết bị.
Các loại thử thách được hỗ trợ
Sau đây là các loại thử thách xác minh người dùng phụ được hỗ trợ:
- Không có thách thức – Yêu cầu và phản hồi không sử dụng thử thách xác minh người dùng phụ.
- ack Cần - Xác minh người dùng phụ yêu cầu xác nhận rõ ràng (có hoặc không) và cũng có thể sử dụng trạng thái tính năng làm phản hồi phản hồi. Loại thử thách này không dành cho các thiết bị và đặc điểm bảo mật.
- pinneeded - Xác minh người dùng phụ yêu cầu số nhận dạng cá nhân (PIN), lý tưởng cho các thiết bị và đặc điểm bảo mật.
Không có thử thách
Ví dụ này cho thấy một yêu cầu EXECUTE
và phản hồi thành công mà không cần thử thách bật đèn.
User | Bật đèn. |
Google Assistant | Được rồi, tôi đang bật 3 đèn. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.OnOff", "params": { "on": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS", "states": { "on": true, "online": true } }] } }
không cần thiết
Quy trình xác thực người dùng phụ có thể sử dụng nhiều trạng thái cho một đặc điểm hoặc một quy trình xác thực đơn giản.
Sau đây là các loại thử thách ackNeeded
:
Thiếu đơn giản
Ví dụ này cho thấy một yêu cầu và phản hồi đơn giản với thử thách ackNeeded
để giảm độ sáng và xác nhận để giảm độ sáng.
User | Trong điều kiện ánh sáng phòng khách, hãy giảm độ sáng. |
Google Assistant | Tôi đang giảm độ sáng của đèn phòng khách. Bạn có chắc chắn không? |
User | Có. |
Google Assistant | Tôi đang giảm độ sáng của đèn phòng khách. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.BrightnessAbsolute", "params": { "brightness": 12 } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "ackNeeded" } }] } }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.BrightnessAbsolute", "params": { "brightness": 12 }, "challenge": { "ack": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS" }] } }
Thiếu các trạng thái đặc điểm
Phương thức xác thực người dùng phụ có thể sử dụng trạng thái cho một đặc điểm.
Ví dụ: nếu bạn đang làm việc với đặc điểm
Nhiệt độ cài đặt và cả
thermostatMode
và thermostatTemperatureSetpoint
,
Assistant có thể hỏi Bạn có chắc chắn muốn đặt hệ thống sưởi
trên máy điều hòa không khí ở mức 28 độ không?
Bạn cũng có thể đưa một trạng thái vào phản hồi để yêu cầu Assistant thực hiện một hành động cụ thể dựa trên một yêu cầu nhất định.
Các đặc điểm và trạng thái sau đây hỗ trợ ackNeeded
cùng với trạng thái tính năng. Danh sách một đặc điểm cụ thể cho biết rằng tất cả trạng thái của nó đều được hỗ trợ.
- ArmDisarm
currentArmLevel
currentStatusReport
- Điền
- Mở khoá
- Tắt
on
- OpenClose
- Cảnh
- Chế độ cài đặt nhiệt độ
thermostatMode
thermostatTemperatureSetpoint
thermostatTemperatureSetpointHigh
thermostatTemperatureSetpointLow
Ví dụ này cho thấy một yêu cầu và phản hồi với thử thách ackNeeded
sử dụng trạng thái đặc điểm. Nút này thay đổi chế độ điều hoà không khí thành chế độ sưởi ấm và đặt nhiệt độ ở mức 28 độ. Sau đó, Assistant yêu cầu người dùng xác nhận bật nhiệt và đặt nhiệt độ ở 28 độ kể từ khi thermostatTemperatureSetpoint
của 28
được trả về dưới dạng trạng thái trong phản hồi.
User | Đặt chế độ điều hòa nhiệt độ thành nhiệt. |
Google Assistant | Bạn có chắc chắn muốn đặt chế độ sưởi ấm trên điều hòa không khí ở mức 28 độ C không? |
User | Có. |
Google Assistant chuẩn | Đang đặt chế độ sưởi ấm trên điều hòa ở mức 28 độ. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.TemperatureSetting", "params": { "thermostatMode": "heat" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "states": { "thermostatMode": "heat", "thermostatTemperatureSetpoint": 28 }, "errorCode": "challengeNeeded", "challengeNeeded": { "type": "ackNeeded" } }] } }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.TemperatureSetting", "params": { "thermostatMode": "heat" }, "challenge": { "ack": true } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS", "states": { "thermostatMode": "heat", "thermostatTemperatureSetpoint": 28 } }] } }
cần
Bạn nên sử dụng thử thách pinNeeded
cho các thiết bị bảo mật.
Ví dụ này cho thấy một yêu cầu và phản hồi ban đầu với thử thách pinNeeded
. Ví dụ này trả về phản hồi có thử thách pinNeeded
, vì vậy, Assistant sẽ yêu cầu ghim. Tại thời điểm này, người dùng có thể cung cấp ghim không chính xác hoặc hợp lệ.
Yêu cầu và phản hồi mẫu cho một mã PIN không chính xác hoặc hợp lệ:
User | Mở khoá cửa. |
Google Assistant | Bạn có thể cho tôi mã bảo mật của bạn không? |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.LockUnlock", "params": { "lock": false } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "pinNeeded" } }] } }
Mã PIN không chính xác
Ví dụ này cho thấy yêu cầu và phản hồi với thử thách challengeFailedPinNeeded
. Bạn nên sử dụng thử thách này sau khi thử thách pinNeeded
ban đầu không thành công.
Khi loại challengeFailedPinNeeded
được trả về, Assistant sẽ yêu cầu lại mã bảo mật. Nếu người dùng thực hiện quá nhiều lần không thành công, bạn có thể trả về một phản hồi lỗi tooManyFailedAttempts
. Xem phần Phản hồi lỗi.
User | 333222 |
Google Assistant | Rất tiếc, mã bảo mật không chính xác. Bạn có thể cho tôi mã bảo mật của bạn không? |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.LockUnlock", "params": { "lock": false }, "challenge": { "pin": "333222" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "challengeFailedPinNeeded" } }] } }
Mã PIN hợp lệ
Ví dụ này cho thấy yêu cầu và phản hồi của mã PIN hợp lệ.
User | 333444 |
Google Assistant | Đang mở khoá cửa. |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.LockUnlock", "params": { "lock": false }, "challenge": { "pin": "333444" } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "SUCCESS", "states": { "isLocked": false, "isJammed": false } }] } }
User | Trong điều kiện ánh sáng phòng khách, hãy giảm độ sáng. |
Google Assistant | Bạn có thể cho tôi mã bảo mật của bạn không? |
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "inputs": [{ "intent": "action.devices.EXECUTE", "payload": { "commands": [{ "devices": [{ "id": "123" }], "execution": [{ "command": "action.devices.commands.BrightnessAbsolute", "params": { "brightness": 12 } }] }] } }] }
{ "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": ["123"], "status": "ERROR", "errorCode": "challengeNeeded", "challengeNeeded": { "type": "pinNeeded" } }] } }
Phản hồi lỗi
Dưới đây là một số mã lỗi có thể được trả về kèm theo phản hồi của bạn:
challengeFailedNotSetup
– Thao tác này yêu cầu mã bảo mật, nhưng mã này chưa được thiết lập trong ứng dụng trên thiết bị của bạn.tooManyFailedAttempts
- Rất tiếc, quá nhiều lần thử không thành công. Vui lòng chuyển đến ứng dụng trên thiết bị của bạn để hoàn tất thao tác đó.pinIncorrect
– Rất tiếc, mã bảo mật không chính xác.userCancelled
– OK.
Xem danh sách toàn bộ các lỗi và trường hợp ngoại lệ.