YII框架第三方微博登录

微博登录是最常用的第三方账号登录之一。由于其网站用户量大,可操作接口功能多,所以受到很多开发者的青睐。

既然是第三方,如果想使用它们的账号进行登录,那么第一步就应该申请一个开发账号。

前面啰嗦两句,这里有两个条件是硬性的,否则将影响你的开发。

  1. 微博账号,这个应该都有。

  2. 域名和服务器,也就是说你要有你自己的网站。不过为公司开发就方便多了。

申请开发账号

首先去微博开放平台:http://open.weibo.com/connect,点击立即接入,填写一个表单,验证一下网站就OK了

之后你在我的应用里面就可以看到你申请的应用。当前状态是未提交审核,待你开发完了上线后,提交微博审核,审核通过后即可正常使用。(未审核之前只能是测试账号访问)

到这一步为止,我们就可以先进行开发工作。进入网站信息页面,首先获取我们需要的app_id和secret信息。

下面我们进入开发,我们这里使用YII2框架,高级版本。其他框架原理相同。

 

1、整合代码

开发之前,我们要先去微博官网下载一个SDK来加速我们的开发。毕竟人家都写好了,拿来用比较方便。

下载下来大概长这个样子:

  • 其中saetv2.ex.class.php是他的核心文件,其他文件基本都是辅助作用。

  • index.php文件是首页,其实他的唯一作用就是产生一个微博登录跳转链接。

  • config.php是一些配置文件,就是你刚刚从官网申请来的app_id之类的

  • callback.php是你跳转到微博后,它再跳转回来的一个地址。

  • weibolist.php是授权成功后,你获取到他的微博列表的一个demo

这个文件夹文件可以直接放在网站根目录访问,不过我们不准备这样做,我们要把他们拆分了,直接集成到YII

首先针对config.php文件,这个也最简单,我们打开它,发现只有几行代码。

<?php
header('Content-Type: text/html; charset=UTF-8');

define( "WB_AKEY" , 'xxxxxxxxxx' ); define( "WB_SKEY" , 'xxxxxxxxxxxxxxxxxxxxxxxxx' ); define( "WB_CALLBACK_URL" , 'http://xxxxxxxxxxxx/callback.php' );

其实就是配置了app_id,app_secret,callback我们把他们扔到Yii配置文件params.php

'weibo'=>[
        'app_key'=>'你的app_key',
        'app_secret'=>'你的app_secret', 'back_url'=>'你的回跳地址,比如:http://www.bidianer.com/login/weibo-back(这是我的)' ], 
 

下面我们看下,saetv2.ex.class.php,打开后我们发现,这个文件里面有两个类,为了便于开发,我们将其拆分成为2个文件存放。第一个文件存放靠上面的类,第二个文件存放靠下面的类。同时,我们将其拷贝到Yii2目录vendor/yiisoft/yii2/web,这个随自己喜欢。

我们将拆分后的文件命名为SaeAuth.phpSaeTClientV2.php,类名同文件名。同时加上命名空间     yii/web

2、控制器开发

下面我们来到控制器开始做真正开发工作。

1、新建LoginController.php,在init方法中,我们将配置信息加载过来:

在此之前你需要 

use yii\web\SaeAuth;
use yii\base\Exception;
use yii\web\NotFoundHttpException; 
class LoginController extends Controller
{ public $app_key;
public $app_secret; public $back_url;  public function init()  {  $this->app_key = Yii::$app->params['weibo']['app_key'];  $this->app_secret = Yii::$app->params['weibo']['app_secret'];  $this->back_url = Yii::$app->params['weibo']['back_url'];  }
} 

2、新建登录首页index方法,同时生成微博跳转链接

public function actionIndex()
{

    $sea = new SaeAuth($this->app_key , $this->app_secret);  $weibo_url = $sea->getAuthorizeURL($this->back_url);  return $this->render("index",['url'=>$weibo_url]); }
 

在此之前你需要 use/yii/web/SaeAuth(这里反斜杠打不出来)

3、接下来我们新建weibo-back方法来处理微博回跳后处理。

获取微博返回参数code

$code = Yii::$app->request->get('code');

获取token

$sea = new SaeAuth($this->app_key , $this->app_secret); if ($code) { $keys = array(); $keys['code'] = $code; $keys['redirect_uri'] = $this->back_url; try { $token = $sea->getAccessToken( 'code', $keys ) ; } catch (Exception $e) { throw new NotFoundHttpException; } }

下面如果获取token成功,我们就将其放入session存起来,留着后面用

if ($token)
{
    $session = Yii::$app->session; $session['token'] = [ 'access_token'=>$token['access_token'], 'uid'=>$token['uid'], 'lifetime'=> 24*3600 // 这里我设置了一天,你们可以自己设置合适时间 ]; $this->redirect(Url::toRoute('/login/complete-info')); }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值