登录授权

登录控制器

 1 // 小程序登录
 2     public function wxlogin(Request $request)
 3     {
 4         //获取openid
 5         $code = $request->get('code');//点击之后获取到code
 6         $appId = "wxc5de25084db9570a";//账号
 7         $appSecret = "5bdf5462595d09f1d5d969694f4e9c0f";//账号
 8         //接口地址(获取openid的接口地址)
 9         $url = "https://api.weixin.qq.com/sns/jscode2session?appid=$appId&secret=$appSecret&js_code=$code&grant_type=authorization_code";
10         //调用方法获取openid     有限期5          不检查证书ssl
11         $client = new Client(['timeout' => 5,'verify' => false]);
12         $res = $client->get($url);
13         $json = (string)$res->getBody();
14         // json转换为数组
15         $arr = json_decode($json,true);
16         // 入库
17         try {
18             Renting::create(['openid'=>$arr['openid']]);
19         }catch (\Exception $exception) {
20 
21         }
22         return $json;
23 
24     }

 

登录另一种写法:

// 判断是否是第一次登录
public function login(){
//接受code
$code = input('code ' );
$appid = 'wx01143bfdef3355f5';
$serect = 'f40af546cd44e203bc00bde4ecc49fb9 ' ;
$url : "httSs://api.meixin.q.con/sns/jscode2session?appid=$appidEsecret=-$serect&js code=$code&grant_type=authorization_code";
$res = json_decode(file_get_contents($url), true); //查询数据 $user = Db :: table( 'user')->where( 'openid' ,$res[ 'openid' ])->find();
if ($user[ ' openid' ] == $res[ 'openid ' ]){ //直接返回结果 return json([ 'code'=>200, 'msg'=>'不是第一次登录', ' data'=>$user]);
}else{ //第一次登录添加数握
$req = user : :create($res); if ($req){ return json([ 'code'=>200, ' msg'=> 'create ' , ' data'=>$req]);
}else{ return json( [ 'code'=>500, 'msg'=>'添加失败', ' data'=>[]]);
}
}
}
// 每次登陆进来修改 session
        //接收code值
        $code = input('code');//接收nickname
//
        $nickname = input('nickname ');

        $appid = 'wx01143bfdef3355f5';//密钥
        $secret = 'f40af546cd44e203bc00bde4ecc49fb9';//请求地址
        $url = "https://api.weixin.qg .com/sns/ jseode2session?appid=$appid&secret-$secret&js_code=$code&grant_type=authorization_code";
// curl发送请求
        $res = curl_request($url, false, [], true);
// 将结果转换为数组
        $req = json_decode($res, true);
//品要入库的结果集
        $data = [
            ' openid' => $req['openid'],
            'session_key' => $req['session_key'],
        ];
//查询唯一标识oppenid是否存在
        $find = User::where('openid', $req['openid'])->find();
//如果请求后的oppenid 和查出的oppenid不相等就插入
        if ($find['openid'] != $req['openid']) {
            $insert = User::create($data);
            if ($insert) {
//如果插入成功返回数据
                return json(['code' => 200, 'msg' => '插入成功','result'=>$insert]);
            }
            //否则就修改sessionkey
        }else{
            //根据openid修改sessionkey
            $update = User::update([ 'session_key'=>$req[ 'session_key']], [ 'openid'=>$req[ 'openid']]);
            if ($update) {
                $users = User::where( 'openid' ,$req[ 'openid'])->find()->toArray();
                return json(['code'=>200, 'msg'=>'修改', 'result'=>$users]);
            }
        }

 

 

 

用户控制器

 1  // 用户获取信息入库 openid,头像,昵称
 2     public function userinfo(Request $request)
 3     {
 4         // 得到openid
 5         $openid = $request->get('openid');
 6         $arr = $request->except('openid');
 7         $data =  Renting::where('openid',$openid)->update($arr['formData']);
 8         if ($data){
 9             return ['code' => 200,'msg' => '授权成功','data'=>null];
10         }
11     }
12 
13     // 获取信息
14     public function getuserinfo(Request $request)
15     {
16 
17         $openid = $request->get('openid');
18         // 查询当前openid的用户数据
19         $data = Renting::where('openid',$openid)->first();
20         return $data;
21     }
22 
23     // 文件上传
24     public function upfile(Request $request)
25     {
26         if ($request->hasFile('file'))
27         {
28             // 上传
29             // 参数2 配置的节点名称
30             $ret = $request->file('file')->store('','card');
31             $pic = '/uploads/card/' . $ret;
32             return ['code'=>200,'pic'=>$pic];
33         }
34         return ['status' => 500,'msg' => '无图片上传'];
35     }

 

posted @ 2021-01-29 08:10  SlytherinGirl  阅读(169)  评论(0)    收藏  举报