63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace addons\clicaptcha\controller; | ||
|  | 
 | ||
|  | use addons\clicaptcha\library\Clicaptcha; | ||
|  | use think\Config; | ||
|  | 
 | ||
|  | /** | ||
|  |  * 公共 | ||
|  |  */ | ||
|  | class Api extends \app\common\controller\Api | ||
|  | { | ||
|  |     protected $noNeedLogin = '*'; | ||
|  | 
 | ||
|  |     public function _initialize() | ||
|  |     { | ||
|  | 
 | ||
|  |         if (isset($_SERVER['HTTP_ORIGIN'])) { | ||
|  |             header('Access-Control-Expose-Headers: __token__');//跨域让客户端获取到
 | ||
|  |             header('Access-Control-Expose-Headers: X-Clicaptcha-Text');//跨域让客户端获取到
 | ||
|  |         } | ||
|  |         //跨域检测
 | ||
|  |         check_cors_request(); | ||
|  | 
 | ||
|  |         if (!isset($_COOKIE['PHPSESSID'])) { | ||
|  |             Config::set('session.id', $this->request->server("HTTP_SID")); | ||
|  |         } | ||
|  |         parent::_initialize(); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function index() | ||
|  |     { | ||
|  |         $this->error("当前插件暂无前台页面"); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 获取验证码 | ||
|  |      */ | ||
|  |     public function start() | ||
|  |     { | ||
|  |         $clicaptcha = new Clicaptcha(); | ||
|  |         $response = $clicaptcha->create(); | ||
|  |         $contentType = $response->getHeader('Content-Type'); | ||
|  |         $text = urldecode($response->getHeader('X-Clicaptcha-Text')); | ||
|  |         $content = $response->getContent(); | ||
|  |         $this->success($text, 'data:' . $contentType . ';base64,' . base64_encode($content)); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * 判断验证码 | ||
|  |      */ | ||
|  |     public function check() | ||
|  |     { | ||
|  |         $clicaptcha = new Clicaptcha(); | ||
|  |         $result = $clicaptcha->check($this->request->post("info", $this->request->post("captcha")), false); | ||
|  |         if ($result) { | ||
|  |             $this->success(); | ||
|  |         } else { | ||
|  |             $this->error(); | ||
|  |         } | ||
|  |     } | ||
|  | } |