微博登录原理,简单介绍一下,通过特定网址携带固定参数,发起请求登录,之后通过回调地址,获取code值,通过code值获取access_token值和uid值,通过上面获取的值获取用户信息。
以下基础信息简要介绍一下
一、申请账号
地址:https://weibo.com/signup/signup.php
二、完善信息
完善信息,实名认证等操作
三、申请应用
选择“微博登录”,并填写相关信息,完善应用。
四、应用审核
获取相关信息,App key 和 App Sercet,以及填写回调地址
五、前端代码
填写“App key” 和“回调地址”,将链接上的**顺序替换
<a class="btn btn-info" href="https://api.weibo.com/oauth2/authorize?client_id=*****&response_type=code&redirect_uri=******">微博登录</a>
六、php代码
//微博回调 public function wbback(){ //参数设置 $Client_id = "***"; //appkey $Client_secret = "***"; //App Sercet $Redirect_uri = "***"; //回调地址 //接收code值 $Code = I(‘get.code‘); if(!$Code) $this->error("code获取失败!"); //获取access_token $url = "https://api.weibo.com/oauth2/access_token?client_id=$Client_id&client_secret=$Client_secret&grant_type=authorization_code&redirect_uri=$Redirect_uri&code=$Code"; $info = $this->httpsRequest($url); //json转数组 $info_json = json_decode($info,true); //获取access_token和uid,用于获取用户信息 $access_token = $info_json[‘access_token‘]; $uid = $info_json[‘uid‘]; if($info){ //设置中文字符集 header("Content-type:text/html;charset=utf-8"); //获取用户信息 $info_url = "https://api.weibo.com/2/users/show.json?access_token=$access_token&uid=$uid"; $ch = curl_init(); //设置选项,包括URL curl_setopt($ch, CURLOPT_URL,$info_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); //执行并获取HTML文档内容 $output = curl_exec($ch); curl_close($ch); //此处可打印用户所有信息 //dump($output); $userinfo = json_decode($output,true); $username = $userinfo[‘screen_name‘]; echo "登录成功,用户名:$username"; } } //httpsRequest public function httpsRequest($url,$post_data){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 设置请求为post类型 curl_setopt($ch, CURLOPT_POST, 1); // 添加post数据到请求中 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); // 执行post请求,获得回复 $res= curl_exec($ch); curl_close($ch); return $res; }
七、后续开发,请自行操作,谢谢
--------------------------------------------------------转载请标注出处,谢谢!---------------------------------------------------------------
原文地址:https://www.cnblogs.com/shenlin/p/8308682.html
时间: 2024-10-08 09:37:46