yii开发, Facebook api 互联登录,请教流程
yii开发, Facebook api 互联登录,请教一下具体流程?
------解决方案--------------------
facebook session获取 sdk会做,不用自己写。
sdk应该包含以下三个文件
base_facebook.php
facebook.php
fb_ca_chain_bundle.crt
<br /><?php<br />include "facebook.php";<br />$oFacebook = new Facebook(array(<br /> 'appId' => 'xxx',<br /> 'secret' => 'xxx',<br /> 'cookie' => true,<br /> 'fileUpload' => true<br /> ));<br /><br />$user = $oFacebook->getUser();<br />if($user){<br /> try{<br /> $user_profile = $oFacebook->api('/'.$user); //判斷是否獲取到用戶信息<br /> } catch (FacebookApiException $e){<br /> $user = null;<br /> }<br /> if($user){<br /> return $user; //返回用戶id<br /> }<br />}else{<br /> $loginUrl = $oFacebook->getLoginUrl(array(<br /> 'scope' => 'xxxx', // 这里填权限,要获取的东西 例如 publish_stream,user_photos,email,offline_access,user_birthday,user_notes<br /> 'redirect_uri' => 'xxx' // 这里填在facebook login后要回跳的地址<br /> ));<br /> return $loginUrl;<br />}<br />?><br />
得到$loginUrl后,跳转到这个地址
当facebook 登入成功后,会返回到 redirect_uri这个地址,并把参数带回
redirect_uri php可以这样写
<br /><?php<br /> $userid = $oFacebook->getUser();<br /><br /> $facebook_accesstoken = $facebook->getAccessToken();<br /> echo $facebook_accesstoken.'<br>';<br /><br /> try{<br /> $param = array(<br /> 'method' => 'fql.query',<br /> 'query' => "SELECT 'uid,name,pic,pic_square,email,sex,birthday_date' FROM user WHERE uid='".$userid."'",<br /> 'access_token' => $facebook_accesstoken<br /> );<br /> $result = oFacebook->api($param);<br /> } catch(FacebookApiException $e){<br /> return array();<br /> }<br /><br /> if($result){<br /> $user_profile = array();<br /> foreach($result[0] as $key=>$val){<br /> $user_profile[$key] = $val;<br /> }<br /> return $user_profile;<br /> }else{<br /> return array();<br /> } <br /> print_r($result);<br />?><br />
剩下的就是自己服务器那边的操作了。

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

利用會話構建高效購物車系統的步驟包括:1)理解會話的定義與作用,會話是服務器端的存儲機制,用於跨請求維護用戶狀態;2)實現基本的會話管理,如添加商品到購物車;3)擴展到高級用法,支持商品數量管理和刪除;4)優化性能和安全性,通過持久化會話數據和使用安全的會話標識符。

本文討論了PHP中的crypt()和password_hash()的差異,以進行密碼哈希,重點介紹其實施,安全性和對現代Web應用程序的適用性。

文章討論了通過輸入驗證,輸出編碼以及使用OWASP ESAPI和HTML淨化器之類的工具來防止PHP中的跨站點腳本(XSS)。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Dreamweaver CS6
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器