当前位置:首页 > 编程教程 > php技术文章 > PHP调用微博接口实现微博登录的方法示例

PHP通过接口实现微博快速登录的方法总结

  • 发布时间:
  • 作者:码农之家
  • 点击:172

这篇文章主要知识点是关于PHP调用微博接口、PHP微博登录、PHP未登录自动跳转到登录页面 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

PHP开发实例大全:提高卷
  • 类型:PHP开发大小:241.1 MB格式:PDF作者:软件开发技术联盟
立即下载
PHP从入门到精通
  • 类型:PHP入门大小:38.6 MB格式:PDF作者:明日科技
立即下载

PHP调用微博接口实现微博登录的方法示例

在平时项目开发过程中,除了注册本网站账号进行登录之外,还可以调用第三方接口进行登录网站。这里以微博登录为例。微博登录包括身份认证、用户关系以及内容传播。允许用户使用微博帐号登录访问第三方网站,分享内容,同步信息。

1、首先需要引导需要授权的用户到如下地址:

https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI

如果用户同意授权,页面跳转至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE:

2、接下来要根据上面得到的code来换取Access Token:

https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE

返回值:

JSON

{
 "access_token": "SlAV32hkKG",
 "remind_in": 3600,
 "expires_in": 3600 
}

3、最后,使用获得的OAuth2.0 Access Token调用API,获取用户身份,完成用户的登录。

话不多说,直接上代码:

为了方便,我们先将get和post封装到application下的common.php中:
应用公共文件common.php:

function get( $url, $_header = NULL )
{
  $curl = curl_init();
  //curl_setopt ( $curl, CURLOPT_SAFE_UPLOAD, false); 
  if( stripos($url, 'https://') !==FALSE )
  {
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
  }

  curl_setopt($curl, CURLOPT_URL, $url);
  curl_setopt($curl, CURLOPT_HEADER, 0);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  if ( $_header != NULL )
  {
    curl_setopt($curl, CURLOPT_HTTPHEADER, $_header);
  }
  $ret  = curl_exec($curl);
  $info  = curl_getinfo($curl);
  curl_close($curl);

  if( intval( $info["http_code"] ) == 200 )
  {
    return $ret;
  }

  return false;
}
/*
 * post method
 */
function post( $url, $param )
{
   $oCurl = curl_init ();
  curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
  if (stripos ( $url, "https://" ) !== FALSE) {
    curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
    curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
  }
  
  curl_setopt ( $oCurl, CURLOPT_URL, $url );
  curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
  curl_setopt ( $oCurl, CURLOPT_POST, true );
  curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $param );
  $sContent = curl_exec ( $oCurl );
  $aStatus = curl_getinfo ( $oCurl );
  curl_close ( $oCurl );
  if (intval ( $aStatus ["http_code"] ) == 200) {
    return $sContent;
  } else {
    return false;
  }
}

控制器处理代码Login.php:

class Login extends \think\Controller 
{
  public function index()
  {
    $key = "****";
    $redirect_uri = "***微博应用安全域名***/?backurl=***项目本地域名***/home/login/webLogin?";
    //授权后将页面重定向到本地项目
    $redirect_uri = urlencode($redirect_uri);
    $wb_url = "https://api.weibo.com/oauth2/authorize?client_id={$key}&response_type=code&redirect_uri={$redirect_uri}";
    $this -> assign('wb_url',$wb_url);
    return view('login');
  }


  public function webLogin(){
    $key = "*****";
    //接收code值
    $code = input('get.code');
    //换取Access Token: post方式请求  替换参数: client_id, client_secret,redirect_uri, code
    $secret = "********";
    $redirect_uri = "********";
    $url = "https://api.weibo.com/oauth2/access_token?client_id={$key}&client_secret={$secret}&grant_type=authorization_code&redirect_uri={$redirect_uri}&code={$code}";
    $token = post($url, array());
    $token = json_decode($token, true);
    //获取用户信息 : get方法,替换参数: access_token, uid
    $url = "https://api.weibo.com/2/users/show.json?access_token={$token['access_token']}&uid={$token['uid']}";
    $info = get($url);
    if($info){
      echo "<p>登录成功</p>";
    }
  }
}

模板代码login.html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>微博登录</title>
</head>
<body>
<a href="{$wb_url}" rel="external nofollow" >点击这里进行微博登录</a>
</body>
</html>

效果图:

PHP调用微博接口实现微博登录的方法示例

PHP调用微博接口实现微博登录的方法示例

PHP调用微博接口实现微博登录的方法示例

PHP未登录自动跳转到登录页面

下面一段代码给大家分享php未登录自动跳转到登录页面,具体代码如下所示:

<?php 
namespace Home\Controller;
use Think\Controller;
class BaseController extends Controller{
  //基础信息,判断登陆
  public function __construct(){
    parent::__construct();
    /*if(!session('?user')){
      redirect(U('Home/Login/index'));
    }*/
  }
}
?>

PHP未登录自动跳转到登录页面

以上所述是小编给大家介绍的PHP未登录自动跳转到登录页面,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对码农之家网站的支持!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

相关电子书
学习笔记
网友NO.365711

PHP实现用户登录的案例代码

本文讲述了PHP实现用户登录的案例代码。分享给大家供大家参考,具体如下: 需求分析: 在Web应用开发中,经常需要实现用户登录的功能。假设一个名为username的用户,当该用户进入网站首页时,如果还未登录,则页面会提示登录,用户输入登录信息进行验证,验证通过进入用户中心,否则显示用户名或密码错误,重新登录。登录成功后,用户还可以单击“注销”,回到登录页面。 程序设计流程图: login.html !DOCUMENT html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" head meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/ title会员登录/title style type="text/css" ul li{margin:0;padding:0;} form{margin:40px 30px 0;} form li{list-style:none;padding:5px 0;} form li label{float:left;width:70px;text-align:right} form li a{fon……

网友NO.461880

PHP实现QQ快速登录方法总结

前言: PHP实现QQ快速登录,罗列了三种方法 方法一: 面向过程,回调地址和首次触发登录写到了一个方法页面【因为有了if做判断】, 方法二,三: 面向对象 1.先调用登录方法,向腾讯发送请求, 2.腾讯携带本网站唯一对应参数OPENID,ACCESSTOKEN,返回到对应回调页面, 3.回调页面接受到腾讯的参数后,通过这个两个参数,再发出对应的请求,如查询用户的数据。 4.腾讯做出对应的操作,如返回这个用户的数据给你 即使你没看懂,也没关系,按照我下面的流程来,保证你可以实现。 前期准备: 使用人家腾讯的功能,总得和人家打招呼吧! QQ互联首页:http://connect.qq.com/ 进入网址后,按如下操作来: 一.进入官网 二.申请创建【网站】应用 三.按要求填写资料 注意网站地址:填写你要设置快速登录的网址,eg:http://www.test.com; 回调地址:填写你发送QQ快速登……

网友NO.439282

PHP简单实现单点登录功能示例

本文实例讲述了PHP简单实现单点登录功能。分享给大家供大家参考,具体如下: 1.准备两个虚拟域名 127.0.0.1 www.openpoor.com 127.0.0.1 www.myspace.com 2.在openpoor的根目录下创建以下文件 index.PHP ?phpsession_start();?!DOCTYPE htmlhtmlheadmeta charset="UTF-8"/titlesync login/title/headbody?php if(empty($_SESSION['username'])):?hello,游客;请先a href="login.php" rel="external nofollow" 登录/aa href="http://www.myspace.com/index.php" rel="external nofollow" rel="external nofollow" 进入空间/a?php else: ?hello,?php echo $_SESSION['username']; ?;a href="http://www.myspace.com/index.php" rel="external nofollow" rel="external nofollow" 进入空间/a?php endif; ? a href="http://www.openpoor.com/index.php" rel="external nofollow" home/a/body/html login.php ?phpsession_start();if(!empty($_POST['username'])){ require '../Des.php'; $_SESSION['username'] = $_POST['username']; $redirect = 'http://www.openpoor.com/index.php'; header('Location:ht……

网友NO.949249

PHP实现登录注册之BootStrap表单功能

前言 前面几篇简单介绍了一下前端与PHP的一些知识点,前端中表单提交是一个非常重要的模块,在本篇中我会介绍一些关于表单的知识,如果前面内容你掌握的不好并且没有大量的练习,我感觉你最好先把标签都记下来。 项目简介 登录与注册是我们在web开发中最常见的模块,也是我们日常生活中经常接触的功能。用户通过前端表单页面填写内容,通过POST方式提交到后台,然后经过PHP代码处理提交内容后,针对登录或者注册的逻辑继续操作。 登录与注册图解 BootStrap前端框架[ http://v3.bootcss.com/ ] Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。 BootStrap如何使用呢?我们可以下载它的源代码到本地,也可以使用 BootCDN 提供的免费 CDN 加速服务。 首先我们搭建页面基本骨架 htmlhead meta charset="UTF-8" titleRegister/title……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

投诉 / 推广 / 赞助:QQ:520161757