api/src/Topxia/Api/Resource/SmsCodes.php
(开头部分) 1KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
namespace Topxia\Api\Resource;
use Silex\Application;
use Topxia\Api\Util\ImgCodeUtil;
use Gregwar\Captcha\CaptchaBuilder;
use Symfony\Component\HttpFoundation\Request;
class SmsCodes extends BaseResource
{
protected $imgBuilder;
public function post(Application $app, Request $request)
{
$fields = $request->request->all();
$biz = $this->getServiceKernel()->getBiz();
$factory = $biz['ratelimiter.factory'];
$limiter = $factory('ip', 5, 86400);
$remain = $limiter->check($request->getClientIp());
if ($remain == 0 && empty($fields['img_code']) && empty($fields['verified_token'])) {
$this->imgBuilder = new CaptchaBuilder;
$str = $this->buildImg();
$imgToken = $this->getTokenService()->makeToken('img_verify', array(
'times' => 5,
'duration' => 60 * 30,
'userId' => 0,
'data' => array(
'img_code' => $this->imgBuilder->getPhrase()
)
));
$this->imgBuilder = null;
return array('img_code' => $str, 'verified_token' => $imgToken['token'], 'status' => 'limited');
}
if (isset($fields['img_code']) && !isset($fields['verified_token'])) {
return $this->error('500', '非法请求');
}
if (!isset($fields['img_code']) && isset($fields['verified_token'])) {
return $this->error('500', '非法请求');
}
if (isset($fields['img_code']) && isset($fields['verified_token'])) {
$imgCode = $request->request->get('img_code');
$imgToken = $request->request->get('verified_token');
if (empty($fields['img_code'])) {
return $this->error('500', '图形验证码为空');
}
if (empty($fields['verified_token'])) {
return $this->error('500', 'Token为空');
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。