很多站长朋友们都不太清楚phpoauth教程,今天小编就来给大家整理phpoauth教程,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 怎么把qq扫码授权登录html网站 php 2、 Notice: Undefined index: name in E:xampphtdocssinaweibolist.php on line 14 3、 如何基于PHP和mysql设计一个完整oautstrong认证单点登陆 4、 php thinkphp3.2怎么做会员登录 怎么把qq扫码授权登录html网站 php实现思路
对QQ登录的官方SDK进行了一些修改,使其更加容易的整合到自己的网站上去。
使用说明:
1、到
申请QQ登录的appid、appkey。
2、将QQ登录接口解压,然后把整个qq目录上传到你的网站上去。
3、运行http://你的域名/qq/install.PHP,对QQ登录进行配置。
4、对数据库的用户表增加两个字段,access_token(varchar(50))、openid(varchar(50))。
5、打开qq/config.php,将里面的数据库连接、用户表信息修改为你网站上对应的信息,然后上传覆盖。
6、打开qq/oauth.php,将第12行、25行修改为你网站登录成功后是如何用session保存用户id的。
7、打开qq/bind.php,将第12行、46行修改为你网站登录成功后是如何用session保存用户id的。
8、将<a
href="">
转载请注明来源:快速将QQ登录接口整合到你的网站上去
Notice: Undefined index: name in E:xampphtdocssinaweibolist.php on line 14这些都是notice··不是致命错误··你也可以关了它··不过最好修复一下
<strong><?=$me['name']?>
你好~
要换头像么?</strong>
这个是不规范的写法·
<strong><?php
if(isset($me['name']))
{
echo
$me['name'];}?>
你好~
要换头像么?</strong>
<?php
echo
$item['text'];?>
如何基于PHP和mysql设计一个完整oautstrong认证单点登陆然后你需要安装Composer,确保composer在你的环境变量下,在命令行里面输入composer about验证一下安装完成后cd到lumen-api-starter文件夹下,复制.env.example重命名为.env进行设置,APP_KEY必须是32位的
php thinkphp3.2怎么做会员登录现在很多网站都有 QQ互联 和新浪微博 一键登录功能,国内很多php开源项目的代码都是使用thinkphp框架编写的,但是thinkphp框架如何添加QQ互联 和新浪微博 一键登录功能呢?
工具/原料
Thinkphp3.2版本源码
QQ互联 和新浪微博 申请到的 APPID和APPKEY。
方法/步骤
一:到腾讯QQ互联上申请APPID和APPKEY。申请地址: 如同,这里我们可以获取到需要跳转到的APPID和APPKEY。新浪微博的申请同理
二:在Thinkphp官网下载 Thinkphp3.2版本的框架源码
本地安装好Thinkphp后,找到应用下的,Common/conf/config.php文件里加上。QQ互联对应的APPID和APPKEY等QQ_AUTH配置信息:
'QQ_AUTH' => array(
'APP_ID' => '1XDXXXXX', //你的QQ互联APPID
'APP_KEY' => '2XXXXXXXXXXXXXXXXXXXXX',
'SCOPE' => 'get_user_info,get_repost_list,add_idol,add_t,del_t,add_pic_t,del_idol',
'CALLBACK' => '',
),
//新浪微博的配置同理一样。
在Common目录下建立一个文件夹api。创建文件QQConnect.class.php ,添加如下代码,这里是 我们写好的一个类:
<?php
namespace Common\Api;
class QQConnect{
/**
* 获取QQconnect Login 跳转到的地址值
* @return array 返回包含code state
*
**/
public function login($app_id, $callback, $scope){
$_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
$login_url = ";client_id="
.$app_id. "redirect_uri=" . urlencode($callback)
. "state=" . $_SESSION['state']
. "scope=".urlencode($scope);
//显示出登录地址
header('Location:'.$login_url);
}
/**
* 获取access_token值
* @return array 返回包含access_token,过期时间的数组
* */
private function get_token($app_id,$app_key,$code,$callback,$state){
if($state !== $_SESSION['state']){
return false;
exit();
}
$url = "";
$param = array(
"grant_type" => "authorization_code",
"client_id" => $app_id,
"client_secret" => $app_key,
"code" => $code,
"state" => $state,
"redirect_uri" => $callback
);
$response = $this->get_url($url, $param);
if($response == false) {
return false;
}
$params = array();
parse_str($response, $params);
return $params["access_token"];
}
/**
* 获取client_id 和 openid
* @param $access_token access_token验证码
* @return array 返回包含 openid的数组
* */
private function get_openid($access_token) {
$url = "";
$param = array(
"access_token" => $access_token
);
$response = $this->get_url($url, $param);
if($response == false) {
return false;
}
if (strpos($response, "callback") !== false) {
$lpos = strpos($response, "(");
$rpos = strrpos($response, ")");
$response = substr($response, $lpos + 1, $rpos - $lpos -1);
}
$user = json_decode($response);
if (isset($user->error) || $user->openid == "") {
return false;
}
return $user->openid;
}
/**
* 获取用户信息
* @param $client_id
* @param $access_token
* @param $openid
* @return array 用户的信息数组
* */
public function get_user_info($app_id,$token,$openid){
$url = ''.$app_id.'access_token='.$token.'openid='.$openid.'format=json';
$str = $this->get_url($url);
if($str == false) {
return false;
}
$arr = json_decode($str,true);
return $arr;
}
/**
* 请求URL地址,返回callback得到返回字符串
* @param $url qq提供的api接口地址
* */
public function callback($app_id, $app_key, $callback) {
$code = $_GET['code'];
$state = $_GET['state'];
$token = $this->get_token($app_id,$app_key,$code,$callback,$state);
$openid = $this->get_openid($token);
if(!$token || !$openid) {
return false;
exit();
}
return array('openid' => $openid, 'token' => $token);
}
/*
* HTTP GET Request
*/
private function get_url($url, $param = null) {
if($param != null) {
$query = http_build_query($param);
$url = $url . '?' . $query;
}
$ch = curl_init();
if(stripos($url, "https://") !== false){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
$content = curl_exec($ch);
$status = curl_getinfo($ch);
curl_close($ch);
if(intval($status["http_code"]) == 200) {
return $content;
}else{
echo $status["http_code"];
return false;
}
}
/*
* HTTP POST Request
*/
private function post_url($url, $params) {
$ch = curl_init();
if(stripos($url, "https://") !== false) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$content = curl_exec($ch);
$status = curl_getinfo($ch);
curl_close($ch);
if(intval($status["http_code"]) == 200) {
return $content;
} else {
return false;
}
}
}
在项目下创建一个User模板,然后再创建一个OauthConnect.class.php文件,用户调用 QQConnect.class.php。
OauthConnect.class.php里面加入如下,
<?php
namespace User\Controller;
use Think\Controller;
class OauthController extends Controller {
/*
* Type类型,初始化
* QQConnet WeiboConnect
*/
public function index(){
switch ($_GET['type']) {
/* QQ互联登录 */
case qq:
$app_id = C('QQ_AUTH.APP_ID');
$scope = C('QQ_AUTH.SCOPE');
$callback = C('QQ_AUTH.CALLBACK');
$sns = new \Common\Api\QQConnect;
关于phpoauth教程的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于phpoauth教程 phpstuty的详细内容...