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();
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |