以前项目曾让我加过第三方登录,为了避免麻烦,这次就把主要的步骤给补上,在这里我用的是官网的oauth2.0,但是刚才我看了一下互联,官网上昨天说貌似使用url拼的路径将要停用,但还是发表一下把,我是按照官网的步骤来的,首先你要在一个页面中放一个第三方登录扣扣按钮,然后,给它一个超链接,连接到下面的网址:
https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=你的id&redirect_uri=http://回调域com/index/qq_login&state=xiaoqing(随便写)
下一步,根据你的回调域,找到相对应的控制器与方法,在方法里面接收,在这里我的方法是qq_login,所以,
public function qq_login()
{
$access_token = 'https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=00000&client_secret=7e65c2c83b4cdd2ee65b4119c3fb0b6f& code='.$_GET['code'].'&redirect_uri=http://回调域com/index/qq_login';
$access_token_content = file_get_contents($access_token);
$params = $this->access_token($access_token_content);
$user_id = 'https://graph.qq.com/oauth2.0/me?access_token='.$params['access_token'];
$data = file_get_contents($user_id);
$data = str_replace('callback(','', $data);
$data = str_replace(');','', $data);
$open_id = json_decode($data,true);
$openid=$open_id['openid'];
Session::put('openid',$openid);
$user_url = 'https://graph.qq.com/user/get_user_info?access_token='.$params['access_token'].'&oauth_consumer_key=000000&openid='.$openid;
$user_message = json_decode(file_get_contents($user_url), true);
//查询该用户是否绑定手机号或邮箱
//print_r(strlen($openid));die;
$res = DB::table('users_oauth')->where('open_id','=',$openid)->first();
if($res)
{
$data = User::where('id',$res->user_id)->first()->toArray();
\Session::put('user',$data);
//之前使用扣扣登陆过
return redirect()->action('IndexController@index');
}else{
return redirect()->action('LoginController@user_bind', ['status' => 0, 'nickname' => $user_message['nickname']]);
}
}
//获取扣扣用户access_token
public function access_token($access_token_content)
{
$queryParts = explode('&', $access_token_content);
$params = array();
foreach ($queryParts as $param) {
$item = explode('=', $param);
$params[$item[0]] = $item[1];
}
return $params;
}
以上是我直接从项目中粘贴过来的代码,使用的是laravel5.2第三方登陆代码,可以借鉴,看到这里,关于第三方登陆的一些需要处理的json数据已经处理完善,但是,也是最最让我郁闷的一件事还是发生了,请看
![哭](http://static.blog.csdn.net/xheditor/xheditor_emot/default/cry.gif)
结束语》》 凤求凰亦或是凤囚凰