中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

新浪微博OAuth認證和儲存的主要過程詳解
來源:易賢網 閱讀:1036 次 日期:2015-03-30 11:33:29
溫馨提示:易賢網小編為您整理了“新浪微博OAuth認證和儲存的主要過程詳解”,方便廣大網友查閱!

本文給大家介紹的是參考Twitter的認證過程實現的新浪微博OAuth認證和儲存的主要過程詳解

網上很多關于OAuth的文章,但是包括sina本身都都沒有詳細的的介紹,包括驗證過程和驗證后數據的儲存,所以參考了Twitter的認證過程寫下一些詳細的注釋代碼。

在我們開始前,我們先建立一張數據庫來保存用戶信息,下面是一個基本的 Mysql 的例子:

CREATE TABLE `oauth_users` (

`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,

`oauth_provider` VARCHAR(10),

`oauth_uid` text,

`oauth_token` text,

`oauth_secret` text,

`username` text,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

注意 oauth_token 和 oauth_secret 這兩個字段。sina的 OAuth 認證需要 token 和 token_secret 兩個參數來完成認證,所以我們需要預留兩個字段來記錄他們。

然后我們需要依次完成以下工作:

向 SinaAPI發起認證申請 注冊/或者登錄,如果用戶已經有帳號的情況下 將相關數據保存在 Session 中

基于 OAuth 的認證流程從生成一個網址開始。用戶被重定向到該網址要求認證,認證通過后,會重定向到我們的應用服務器,并會將兩個認證后的參數通過 URL 方式傳回。

建立index.php

<?php

session_start();

//if( isset($_SESSION['last_key']) )

header("Location: weibolist.php");

include_once( 'config.php' );

include_once( 'weibooauth.php' );

// 創建 sinaOAuth 對象實例

$sinaOAuth = new WeiboOAuth( WB_AKEY , WB_SKEY );

$keys = $sinaOAuth->getRequestToken();

// Requesting authentication tokens, the parameter is the URL we will be redirected to

$aurl = $sinaOAuth->getAuthorizeURL( $keys['oauth_token'] ,false , 'http://t.yourtion.com/sina/callback.php');

// 保存到 session 中

$_SESSION['keys'] = $keys;

?>

<a href="<?=$aurl?>">Use Oauth to login</a>

接下來,我們還需要在這個文件中完成以下三件事:

驗證 URL 中的數據

驗證 Session 中的 token 數據

驗證 Session 中的 secret 數據

如果所有數據庫都是合法的,我們需要創建一個新的 SinaOAuth 對象實例,跟之前不同的是,我們要把獲取到的 token 數據做為參數傳入對象。之后,我們應該可以獲取到一個 access token,這個獲取到的數據應該是一個數組,這個 access token 是我們唯一需要保存起來的數據。

建立callback.php

<?php

session_start();

include_once ('config.php');

include_once ('weibooauth.php');

if (!empty($_GET['oauth_verifier']) && !empty($_SESSION['keys']['oauth_token']) &&

!empty($_SESSION['keys']['oauth_token']))

{

// SinaOAuth 對象實例,注意新加入的兩個參數

$sinaOAuth = new WeiboOAuth(WB_AKEY, WB_SKEY, $_SESSION['keys']['oauth_token'],

$_SESSION['keys']['oauth_token_secret']);

// 獲取 access token

$access_token = $sinaOAuth->getAccessToken($_REQUEST['oauth_verifier']);

// 將獲取到的 access token 保存到 Session 中

$_SESSION['access_token'] = $access_token;

// 獲取用戶信息

$user_info = $sinaOAuth->get('account/verify_credentials');

// 打印用戶信息

mysql_connect(DATABASE_HOST, DATABASE_USER, DATABASE_PSSWORD);

mysql_select_db(DATABASE_DB_NAME);

//更換成你的數據庫連接,在config.php中

if (isset($user_info->error) or empty($user_info['id']))

{

// Something's wrong, go back to square 1

header('Location: index.php');

} else

{

// Let's find the user by its ID

$sql = "SELECT * FROM oauth_users WHERE oauth_provider='sina' AND oauth_uid=" .$user_info['id'];

$query = mysql_query($sql);

$result = mysql_fetch_array($query);

// If not, let's add it to the database

if (empty($result))

{

$sql = "INSERT INTO oauth_users (oauth_provider, oauth_uid, username, oauth_token, oauth_secret) VALUES ('sina', '" .

$user_info['id'] . "', '" . $user_info['screen_name'] . "', '" . $access_token['oauth_token'] .

"', '" . $access_token['oauth_token_secret'] . "')";

$query = mysql_query($sql);

$query = mysql_query("SELECT * FROM oauth_users WHERE id = ".mysql_insert_id());

$result = mysql_fetch_array($query);

} else

{

// Update the tokens

$query = mysql_query("UPDATE oauth_users SET oauth_token = '" . $access_token['oauth_token'] .

"', oauth_secret = '" . $access_token['oauth_token_secret'] .

"' WHERE oauth_provider = 'sina' AND oauth_uid = " . $user_info['id']);

}

$_SESSION['id']=$result['id'];

$_SESSION['username']=$result['username'];

$_SESSION['oauth_uid']=$result['oauth_uid'];

$_SESSION['oauth_provider']=$result['oauth_provider'];

$_SESSION['oauth_token']=$result['oauth_token'];

$_SESSION['oauth_secret']=$result['oauth_secret'];

header('Location: update.php');

}

} else

{

// 數據不完整,轉到上一步

header('Location: index.php');

}

?>

你可以通過 $user_info->id 來獲得用戶的 ID,通過 $user_info->screen_name 來獲取用戶名,等等,其它的信息也可以通過同樣的方式獲取。

需要重點指出的是,oauth_verifier 這個傳回來的參數不能被重用,如果上面的代碼已經正確輸出了用戶信息,你可以試著重新刷新頁面,應該會看到頁面會拋出一個錯誤信息,因為 oauth_verifier 已經被我們用過一次了。要再次使用,需要到 index.php 頁面重新發起一個認證請求。

用戶注冊

獲得了用戶信息后,現在我們要開始把用戶信息注冊到我們自己的數據庫中,當然前提是用戶沒有在本地數據庫注冊過。

上面代碼中的數據庫鏈接信息要改成你自己的。如果用戶已經存在于我們的數據庫中,我們需要更新用戶的 tokens 字段,因為這說明 Twitter 生成了新的 tokens,數據庫中的 tokens 已經過期了。如果用戶不存在,我們需要新加一條記錄,并將相關的數據保存在 Session中,最后重定向回 update.php 頁面。

其中update.php代碼如下:

需要注意的是,上面代碼中的 SQL 沒有經過驗證,你在實際使用的時候可能要經過修改。連接數據庫前,我們需要先驗證一下用戶是否已經登錄。有了用戶名,我們就可以展示一條個性的歡迎信息了:

<?php

include_once ('config.php');

include_once ('weibooauth.php');

session_start();

if(!empty($_SESSION['username'])){

// User is logged in, redirect

header('index.php');

}

?>

<html xmlns="" dir="ltr" lang="zh-CN">

<head profile="">

<title>通過 OAuth 進行身份驗證--Yourtion</title>

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

</head>

<body>

<h2>Hello <?=$_SESSION['username'] ?></h2>

</body>

</html>

這就是OAuth認證和儲存的主要過程,希望對你有幫助代碼下載:SinaOauth

以上就是本文所述的全部內容了,希望大家能夠喜歡。

更多信息請查看IT技術專欄

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
亚洲在线一区二区| 99re6这里只有精品| 国产一区二区三区的电影 | 欧美专区日韩视频| 久久久久久久久蜜桃| 欧美精品色一区二区三区| 国产精品久久网站| 亚洲激情成人在线| 午夜精品免费视频| 欧美精品免费播放| 国产亚洲一区二区精品| 亚洲精品一区二区三| 久久精品男女| 国产精品久久久久免费a∨ | 久久久久网址| 欧美视频一区在线| 亚洲人体偷拍| 蜜臀av一级做a爰片久久| 国产精品毛片在线看| 欧美理论片在线观看| 久久综合久色欧美综合狠狠| 久久一区二区三区国产精品| 久久人人九九| 免费在线视频一区| 老色批av在线精品| 欧美日韩1080p| 亚洲一区在线观看视频| 一本久道久久综合婷婷鲸鱼| 欧美在线看片| 亚洲区欧美区| 久热精品在线| 狠狠色综合网| 久久精品免费电影| 国产欧美一区二区精品秋霞影院 | 亚洲精品永久免费精品| 久久久国产成人精品| 国产亚洲a∨片在线观看| 午夜精品久久久| 国产精品一区久久久| 亚洲欧美日韩综合aⅴ视频| 欧美视频久久| 亚洲一二三区在线观看| 欧美吻胸吃奶大尺度电影| 日韩天天综合| 国产精品久久久久久五月尺| 亚洲亚洲精品三区日韩精品在线视频 | 久热精品视频在线观看| 国产欧美一区二区精品忘忧草| 香蕉成人久久| 国产综合一区二区| 欧美 日韩 国产在线| 亚洲欧洲日韩在线| 欧美亚男人的天堂| 亚洲欧美综合网| 好吊视频一区二区三区四区 | 伊人精品成人久久综合软件| 久久成人一区| 伊人久久大香线蕉av超碰演员| 久久九九国产| 日韩视频免费观看| 国产精品一区二区在线观看不卡| 欧美一区二区三区成人| 在线免费精品视频| 宅男66日本亚洲欧美视频| 久久gogo国模啪啪人体图| 欧美在线观看网址综合| 欧美激情二区三区| 亚洲午夜在线观看| 国产精品永久入口久久久| 亚洲美女av网站| 亚洲国产精品久久久久秋霞不卡| 小黄鸭精品密入口导航| 亚洲高清免费在线| 国产精品视频xxxx| 亚洲欧洲另类| 国产精品欧美日韩| 欧美成人综合一区| 亚洲欧美日韩精品久久久| 国产自产在线视频一区| 欧美日韩在线观看视频| 久久亚洲午夜电影| 新片速递亚洲合集欧美合集| 亚洲精品美女久久7777777| 国产日韩精品电影| 欧美日韩一二三区| 欧美a级一区| 久久久久一区| 久久成人av少妇免费| 99视频有精品| 亚洲国产日韩欧美在线99| 国产欧美日韩激情| 国产精品毛片va一区二区三区| 欧美激情一区二区三区蜜桃视频| 久久在线免费观看| 久久免费精品视频| 久久久精彩视频| 久久国产乱子精品免费女 | 欧美国产日韩一区二区| 欧美一区二区三区在线观看视频| 在线中文字幕一区| 夜色激情一区二区| 日韩视频一区二区在线观看 | 国产精品久久看| 欧美激情区在线播放| 欧美ab在线视频| 欧美黄色日本| 欧美激情精品久久久久| 欧美bbbxxxxx| 欧美精品久久久久久久久久| 狂野欧美激情性xxxx| 久久一日本道色综合久久| 久久久久久尹人网香蕉| 久久另类ts人妖一区二区| 久久理论片午夜琪琪电影网| 久久精品视频在线看| 亚洲免费激情| 亚洲视频一二三| 午夜精品久久久久久99热软件| 久久久美女艺术照精彩视频福利播放| 欧美在线观看视频一区二区三区| 久久久久久网站| 国产精品日韩久久久| 国产精品美女视频网站| 亚洲国产精品久久久久秋霞不卡| 欧美一区二区三区免费看| 亚洲国产毛片完整版| 亚洲高清网站| 一本色道久久99精品综合 | 毛片基地黄久久久久久天堂| 久久久国产精品一区二区中文| 久久免费的精品国产v∧| 欧美国产精品劲爆| 国产精品成人在线观看| 国产精品乱人伦一区二区| 狠狠色狠狠色综合日日tαg| 亚洲国产一区在线观看| 亚洲午夜在线视频| 久久久久高清| 欧美精品久久久久久| 国产精品推荐精品| 亚洲国产专区| 午夜精品久久久久久久久久久久久 | 久久久久久久综合色一本| 久久久久女教师免费一区| 欧美日韩日本国产亚洲在线| 国产亚洲一区二区三区| 99re这里只有精品6| 欧美一区二区在线播放| 欧美成人精品一区| 国内久久精品| 一本久久a久久精品亚洲| 久久精品视频播放| 欧美午夜精品理论片a级大开眼界| 国产一区在线观看视频| 亚洲一区二区三区色| 狼人天天伊人久久| 国产精品一区一区| 一区二区毛片| 欧美成人资源网| 韩国欧美一区| 性娇小13――14欧美| 欧美午夜片欧美片在线观看| 亚洲成人影音| 91久久久在线| 一区在线视频| 欧美性大战久久久久| 久久久女女女女999久久| 亚洲永久精品大片| 最新亚洲激情| 99国产一区二区三精品乱码| 亚洲人永久免费| 在线成人激情视频| 国产欧美欧洲在线观看| 国模套图日韩精品一区二区| 免费亚洲电影在线| 激情综合久久| 久久久久一区二区| 国产在线观看91精品一区| 亚洲曰本av电影| 国产精品观看| 亚洲欧美日本伦理| 国产欧美日本| 久久男人资源视频| 伊人一区二区三区久久精品| 久久久91精品国产| 精品福利电影| 欧美好骚综合网| 一区二区激情视频| 国产精品国产a级| 欧美一区不卡| 激情文学综合丁香| 免费影视亚洲| 99国内精品久久久久久久软件| 欧美日韩国产精品一区| 亚洲毛片播放| 国产欧美精品一区二区色综合| 久久精品国产99精品国产亚洲性色| 国产一区二区三区高清| 免费成人网www| 一区二区三区精品|