登录授权
登录控制器
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 }

浙公网安备 33010602011771号