1、在github官网添加应用步骤参考这篇文章:Github 第三方登录接入:https://www.tpxhm.com/adetail/149.html2、编写代码/*;* git登录* */;;public function githubLogin(){;;;;;;;$client_id= client_id;;;;;;
1、在github官网添加应用
步骤参考这篇文章:Github 第三方登录接入:https://www.tpxhm.com/adetail/149.html
2、编写代码
/*
* git登录
* */
public function githubLogin(){
$client_id= client_id;
$client_secret= client_secret;
header('location:https://github.com/login/oauth/authorize?client_id='.$client_id.'&client_secret='.$client_secret.'&scope=user:email');
}
//Github回调
public function githubCallback(Request $request){
$client_id= client_id;
$client_secret= client_secret;
$code=$request->code;
$access_token=$this->curl("https://github.com/login/oauth/access_token?client_id=".$client_id."&client_secret=".$client_secret."&code=".$code);
// header("location:https://api.github.com/user?$token");
$info_url = 'https://api.github.com/user?'.$access_token;
$arrydata = array();
$arrydata = $this->curl($info_url);
parse_str($access_token,$arrydata);
$token = $arrydata['access_token'];
$url = "https://api.github.com/user?access_token=".$token;
$headers[] = 'Authorization: token '.$token;
$headers[] = "User-Agent: 织梦云";
$result = $this->curl($info_url,[],$headers);
$info = json_decode($result,true);
if (isset($info['id'])) {
dd($info)
}
}
public function curl($url,$postData=[],$headers=[]){
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url); //要访问的地址
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //执行结果是否被返回,0返,1不返
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
if($postData){
curl_setopt($ch,CURLOPT_TIMEOUT,60);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$postData);
}
if(curl_exec($ch)==false){
$data='';
}else{
$data=curl_multi_getcontent($ch);
}
curl_close($ch);
return $data;
}
沃梦达教程
本文标题为:Laravel实现第三方github登录方法


基础教程推荐
猜你喜欢
- php去除deprecated的实例方法 2022-09-02
- php+mysql开发的最简单在线题库(在线做题系统)完整案例 2023-01-04
- PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br 2024-03-28
- PHP采用get获取url汉字出现乱码的解决方法 2024-03-28
- php如何获取当前日期和星期 2024-12-06
- PHP基于反射机制实现自动依赖注入的方法详解 2022-10-02
- Laravel 解决composer相关操作提示php相关异常的问题 2023-03-08
- php生成短网址/短链接原理和用法实例分析 2023-04-20
- PHP laravel使用自定义邮件类实现发送邮件 2023-07-03
- Laravel修改验证提示信息为中文的示例 2023-03-08