PHP
对应的官方页面地址
此 PHP 实现与 PHP 5.6 及更高版本兼容。但是,需要注意的是,curl 库在旧版本的 PHP 中可能不可用。因此,如果您使用的是旧版本,则可能需要更新 PHP 安装。注册函数可能看起来像这样:
<?php
// 定义用于与远程服务器进行身份验证的 API 密钥
$API_SECRET = "YOUR_API_SECRET";
// 生成随机整数值的函数
function get_random_int() {
// 将 mt_rand() 生成的随机数乘以 1e9(十亿)并返回整数值
return intval(1e9 * mt_rand());
}
// 使用给定别名创建令牌的函数
function create_token($alias) {
global $API_SECRET; // Make the API secret accessible inside the function
// 准备 API 请求的 payload,包括用户 ID、用户名和别名
$payload = array(
"userId" => get_random_int(),
"username" => $alias,
"aliases" => array($alias)
);
// 初始化 cURL 会话
$ch = curl_init();
// 设置远程服务器的URL
curl_setopt($ch, CURLOPT_URL, "https://v4.passwordless.dev/register/token");
// 表明这是一个 POST 请求
curl_setopt($ch, CURLOPT_POST, 1);
// 将 JSON 编码的 payload 附加为 POST 数据
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
// 设置 HTTP 标头,包括 API 密钥和内容类型
curl_setopt($ch, CURLOPT_HTTPHEADER, array("ApiSecret: $API_SECRET", "Content-Type: application/json"));
// 以字符串形式返回响应而不是打印它
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// (可选)禁用 SSL 证书验证(不建议用于生产)
// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
// 执行 cURL 请求并存储响应
$response = curl_exec($ch);
// 检查 cURL 错误并打印它们(如果有)
if (curl_errno($ch)) {
print("cURL error: " . curl_error($ch) . "\n");
}
// 获取 HTTP 响应代码
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 关闭 cURL 会话
curl_close($ch);
// 打印 API 响应代码
print("passwordless api response: " . $response_code . "\n");
// 将 JSON 响应解码为关联数组
$response_data = json_decode($response, true);
print_r($response_data);
// 检查响应码是否为 200(成功)并打印接收到的令牌
if ($response_code == 200) {
print("received token: " . $response_data["token"] . "\n");
} else {
// 处理或记录任何 API 错误
// 根据需要在此块中记录或处理错误
}
// 返回响应数据
return $response_data;
}
// 检查脚本是否仅使用一个参数执行
if ($argc == 2) {
// 从命令行参数获取别名
$alias = $argv[1];
// 使用别名调用 create_token 函数并存储响应
$response_data = create_token($alias);
} else {
// 如果未使用正确数量的参数执行脚本,则打印使用说明
print("Usage: create_token.php <alias>\n");
}
?>
最后更新于