微博第三方登录

《第三方登录》
1:需要注册一个新浪云账号
2:还需主要开发者平台账号 拿到 App Key: 4107379826 AppSecret: e984bca9215aeb4e2a67c720d14fff7a
3:需要在开发者文档找到SDK下载中的php 然后将
这个下载到本地,然后解压到你的项目与controller同级
4:在与控制器同级下创建一个文件夹里面创建三个文件 里面要写进第三方登录的一些配置 文件名要与我下面图片打开的文件里面三个类的名字一样
然后:
打开
我选中的文件夹 将其中三个类里面的内容分别放进之前你创建的三个文件中
5:需要在项目中的配置文件params-local.php文件中写入键名 值名 回调地址
6:在你写实现登录的控制器中定义键名 值名 回调地址
7:写上你自己回调地址后面的方法里面要获取token 用token获取到用户信息
token获取方法:
在第三方登录配置文件callback.php中将以下代码粘沾方法中
$o = new SaeTOAuthV2( WB_AKEY(键名) , WB_SKEY(值名) );

if (isset($_REQUEST['code'])) {
$keys = array();
$keys['code'] = $_REQUEST['code'];
$keys['redirect_uri'] = WB_CALLBACK_URL(回调地址);
try {
$token = $o->getAccessToken( 'code', $keys ) ;
} catch (OAuthException $e) {
echo $e->getMessage(); (报出错误,配置文件中没有,最好添上)
}
}
最好在将他存在session中:
if($token){
yii::$app->session->set('token',$token);
}
存进session中最好有一层判断包住获取token的代码以防止报错
唯一token例子:
唯一:Token=Array ( [access_token] => 2.00ukruzFiHJyTEd289a2b9750wlAkn [remind_in] => 157679999 [expires_in] => 157679999 [uid] => 5495573664 )
用户信息获取:
先开启以下session:
$session=yii::$app->session;
先到第三方登录配置文件weibolist.php中粘沾以下代码:
$c = new SaeTClientV2( WB_AKEY(键名) , WB_SKEY (值名), $_SESSION['token']['access_token'] );
$uid = $session['token']['uid'];//获取存在session中的唯一id信息
$user_message = $c->show_user_by_id( $uid);//根据ID获取用户等基本信息
//你想把什么入库可以在上面的变量中获取
$user=User::findOne(['uid'=>$uid]);//查找一条看有没有用户数据
if($user){
//如果有直接登录
yii::$app->user->login($user);
return $this->goHome();
}else{
$model=new User;
$model->username=$name;
$model->userpwd=yii::$app->security->generatePasswordHash('123456');(哈希密码,不是微博账号的密码,没什么用随便写)
$model->uid=$uid;
if($model->save()){
yii::$app->user->login($model);
return $this->goHome();
}else{
echo "<script>alert('登录失败');</script>";
}
8:退出销毁session中的值,方便下次不同的人登录:
public function actionLogout()
{
unset($_SESSION['token']);
Yii::$app->user->logout();
return $this->goHome();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值