首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Authy和PHP通过SMS发送用户令牌?

如何使用Authy和PHP通过SMS发送用户令牌?
EN

Stack Overflow用户
提问于 2015-10-31 00:30:45
回答 3查看 2.4K关注 0票数 2

我试图在PHP中为Authy运行一个演示。我已经在Composer中安装了Authy库,所以现在我可以使用以下硬编码值注册用户:

代码语言:javascript
复制
$authy_api = new Authy\AuthyApi('<TESTING API KEY>', 'http://sandbox-api.authy.com'); // actual key omitted -- using the key generated for testing, not the one for production

$user = $authy_api->registerUser('something@something.com', '999-999-9999', 30); // actual credentials omitted

if($user->ok()){
    echo "Success!";
    $id = $user->id();
    echo($id);  
}

当上面的脚本运行时,一个5位数字的用户id确实被生成了,所以一切看起来都很顺利,但是短信从来没有发送到我的手机。

一个可能的问题是,我的电话号码已经注册为应用程序电话(与管理帐户相关联),因此,由于每个电话号码(按文档)必须唯一地标识用户,也许我的号码已经为这个应用程序注册了,因此不需要发送新的令牌。如果是这种情况,则用户对象的id可以是先前注册的id。

然而,问题仍然存在于其他电话号码上。所以现在我迷路了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-07 16:01:58

结果,代码本身并没有什么问题。

它只是沙箱API并没有真正通过发送短信。它只是为了测试目的而模拟这个过程,因此身份验证流程与生产API相同。

当我切换到生产API URL和密钥时,我能够接收到手机上的短信。

票数 1
EN

Stack Overflow用户

发布于 2015-11-02 16:54:47

盖斯刷

有两件事导致了你短信的短缺。

  1. 您的代码示例仅用于用户注册。然后您需要调用第二个API来发送SMS。

https://docs.authy.com/totp.html#requesting-sms-codes

  1. 但是,上述API调用可能不会导致SMS。您确实是正确的,您正在使用的单元格号与您的Authy应用程序关联在默认情况下,而不是引起短信。这里的想法是,因为Authy客户必须支付在Authy交易之上的短信,那些使用移动应用程序的用户不需要SMS。

然而,这种行为可以被覆盖。

所以你的最终代码是;

代码语言:javascript
复制
$authy_api = new Authy\AuthyApi('<TESTING API KEY>', 'http://sandbox-api.authy.com'); // actual key omitted -- using the key generated for testing, not the one for production

$user = $authy_api->registerUser('something@something.com', '999-999-9999', 30); // actual credentials omitted

if($user->ok()){  
    echo "Success!";
    $id = $user->id();
    echo($id);  

    // Now send SMS, force sending a message even if the user has the Authy mobile app installed
   $sms = $authy_api->requestSms('authy-id', array("force" => "true"));    }

西蒙

票数 1
EN

Stack Overflow用户

发布于 2016-07-19 07:00:00

代码语言:javascript
复制
 $authy_api = new AuthyApi(AUTHY_API_KEY, "https://api.authy.com");
 $user = $authy_api->registerUser($email, $phone_number, $country_code);   //// Register User
 if($user->ok()) {
     $sms = $authy_api->requestSms($user->id()); //// Send SMS
     return $sms->ok();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33446773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档