| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 | 
							- <?php
 
- /**
 
-  * Created by PhpStorm.
 
-  * User: 中闽 < 1464674022@qq.com >
 
-  * Date: 2019/12/5
 
-  * Time: 17:44
 
-  */
 
- namespace app\api\controller;
 
- use app\api\controller\base\Base;
 
- use app\api\controller\base\Permissions;
 
- use app\common\model\User;
 
- class Common extends Base
 
- {
 
-     //登入
 
-     public function login()
 
-     {
 
-         $return_url = $this->request->param('return_url', '');
 
-         session('return_url', $return_url, 'login');
 
-         $callback = urlencode(url('/api/common/loginNotify', '', false, true));
 
-         $state = md5('appointment' . time());
 
-         session('state', $state, 'login');
 
-         $url = "https://www.jucai.gov.cn/api/auth/wechat_auth?url=$callback&state=$state";
 
-         $this->redirect($url);
 
-     }
 
-     public function loginNotify()
 
-     {
 
-         $mystate = session('state', '', 'login');
 
-         $state = $this->request->param('state');
 
-         if (!$mystate || !$state || $mystate != $state) {
 
-             $this->json_error('登入失败,请重新登入');
 
-         }
 
-         $post = $this->request->param();
 
-         $validate = new \think\Validate([
 
-             ['openid', 'max:50'],
 
-             ['unionid', 'max:50'],
 
-             ['nickname|昵称', 'max:50'],
 
-             ['head_pic|头像', 'max:255'],
 
-             ['sex|性别', 'in:0,1,2'],
 
-             ['country|国家', 'max:50'],
 
-             ['province|省份', 'max:50'],
 
-             ['city|城市', 'max:50'],
 
-         ]);
 
-         if (!$validate->check($post)) {
 
-             $this->json_error('提交失败:' . $validate->getError());
 
-         }
 
-         $unionid = $this->request->param('unionid');
 
-         $passport = $unionid;
 
-         $user = User::get(['user_type' => User::TYPE_WECHAT, 'passport' => $unionid]);
 
-         if (!$user) {
 
-             $openid = $this->request->param('openid');
 
-             $passport = $openid;
 
-             $user = User::get(['user_type' => User::TYPE_WECHAT, 'passport' => $openid, 'unionid' => $unionid]);
 
-             if (!$user) {
 
-                 $user = User::get(['user_type' => User::TYPE_WECHAT, 'passport' => $openid]);
 
-             }
 
-         }
 
-         if (!$passport) {
 
-             $this->json_error('openid 不能为空');
 
-         }
 
-         if (!$user) {
 
-             //注册
 
-             $user = new User();
 
-             $data = [
 
-                 'openid' => $post['openid']??'',
 
-                 'unionid' => $post['unionid']??'',
 
-                 'passport' => $passport,
 
-                 'nickname' => $post['nickname']??'',
 
-                 'user_type' => User::TYPE_WECHAT,
 
-                 'user_cate' => User::CATE_USER,
 
-                 'head_pic' => $post['head_pic']??'',
 
-                 'status' => User::STATUS_PASS,
 
-                 'ip' => $this->request->ip(),
 
-                 'sex' => $post['sex']??0,
 
-                 'country' => $post['country']??'',
 
-                 'province' => $post['province']??'',
 
-                 'city' => $post['city']??'',
 
-                 "login_time" => time(),
 
-                 "create_time" => time()
 
-             ];
 
-             if (false == $user->allowField(true)->save($data)) {
 
-                 $this->json_error('添加失败');
 
-             }
 
-         } else {
 
-             $data = [
 
-                 "login_time" => time(),
 
-                 'openid' => $post['openid']??'',
 
-                 'unionid' => $post['unionid']??'',
 
-             ];
 
-             $user->allowField(true)->save($data);
 
-         }
 
-         //登入成功 ,返回 前端
 
-         $return_url = session('return_url', '', 'login');
 
-         $this->redirect($return_url . '?jwt=' . Permissions::createJwt($user->id, $user->login_time));
 
-     }
 
- }
 
 
  |