Voxsig 中的身份驗證
身份驗證是一個重要的安全功能,有助於確保客戶和客服之間的對話是私密且安全的。通過驗證雙方的身份,身份驗證有助於防止冒充和未經授權的訪問。
如果您的用戶可以登入您的應用,建議您始終啟用身份驗證。Voxsig 使用基於 HMAC 的身份驗證。這是一種使用密鑰(由 Voxsig 提供)和唯一標識符生成代碼的加密算法,然後可以使用此代碼在前端驗證用戶。
生成 HMAC
要生成 HMAC,您首先需要獲取 Voxsig 收件匣的秘鑰。可以在 設定 > 收件匣 > 設定 > 配置 > 身份驗證
中找到此密鑰。
要在您的網頁小工具中使用 HMAC 進行身份驗證,您需要使用此密鑰生成 HMAC。您可以在後端使用任何編程語言生成此 HMAC。大多數語言都內置了生成令牌的加密功能,如果沒有,總是存在流行的實現。您可以在此頁面的末尾找到流行編程語言的示例。
驗證 HMAC
一旦您使用上述密鑰為標識符生成了 HMAC,您可以使用 HMAC 驗證發件人的身份。要做到這一點,通過 SDK 將 HMAC 與標識符一起發送到您的 Voxsig 伺服器。
網頁上的驗證
window.$chatwoot.setUser(`<unique-identifier-key-of-the-user>`, {
name: "", // 用戶的名稱
email: "", // 用戶的電子郵件
identifier_hash: "<identifier-hash>" // 在上一步中生成的標識符哈希
});
如果 HMAC 匹配,您可以確定發送標識符的人有權這樣做。所有未經驗證的用戶都會顯示警告標誌,表示身份未經驗證。
強制驗證
如果您希望強制所有用戶進行驗證,您可以通過在收件匣設定中啟用 強制用戶身份驗證
選項來實現。
如果啟用此選項,來自未經驗證的用戶的任何新消息都將被拒絕。
流行語言的 HMAC 生成範例
PHP
<?php
// Define your key and message
$key = 'your-secret-token-for-hmac';
$message = 'some-unique-identifier';
// Generate the HMAC
$identifier_hash = hash_hmac('sha256', $message, $key);
?>
Javascript (Node.js)
const crypto = require("crypto");
// Define your key and message
const key = "your-secret-token-for-hmac";
const message = "some-unique-identifier";
// Generate the HMAC
const identifierHash = crypto
.createHmac("sha256", key)
.update(message)
.digest("hex");
Ruby
require 'openssl'
# Define your key and message
key = 'your-secret-token-for-hmac'
message = 'some-unique-identifier'
# Generate the HMAC
identifier_hash = OpenSSL::HMAC.hexdigest('sha256', key, message)
Elixir
# Define your key and message
key = 'your-secret-token-for-hmac'
message = 'some-unique-identifier'
# Generate the HMAC
signature = :crypto.hmac(:sha256, key, message)
identifier_hash = Base.encode16(signature, case: :lower)
Golang
package main
import (
"crypto/hmac"
"crypto/sha256"
"encoding/hex"
"fmt"
)
func main() {
// Define your key and message
key := []byte("your-secret-token-for-hmac")
message := []byte("some-unique-identifier")
// Generate the HMAC
hash := hmac.New(sha256.New, key)
hash.Write(message)
identifierHash := hex.EncodeToString(hash.Sum(nil))
// Print the HMAC
fmt.Println(identifierHash)
}
Python
import hashlib
import hmac
# Define your key and message
secret = bytes('your-secret-token-for-hmac', 'utf-8')
message = bytes('some-unique-identifier', 'utf-8')
# Generate the HMAC
hash = hmac.new(secret, message, hashlib.sha256)
identifier_hash = hash.hexdigest()