① 有關 php 新浪微博同步登陸 oAuth 授權的問題
php 有開發包的
getRequestToken() 方法獲取臨時oauth_token
在callback函數中使用 getAccessToken 獲取正式token,保存到資料庫,以後用正式token就可以用新浪微博賬號登錄了
② 如何使用php中oauth開發包及oauth
windows的下載地址:http://pecl.php.net/package/oauth/1.2.3/windows
需要此文件php_oauth.dll
放入/bin/php[version]/ext
您需要更改 php.ini 載入 oauth (動態擴展)
extension=php_oauth.dll
linux的下載地址:http://pecl.php.net/get/oauth-1.2.3.tgz
tar -zxf oauth-1.2.3.tgz && cd oauth-1.2.3
/usr/local/php5/bin/phpize
/configure --with-php-config=/usr/local/php5/bin/php-config
make && make install
vi php.ini #修改php配置文件載入oauth擴展
添加extension="oauth.so"
使用篇:
$req_url = 'https://oauth.lvtao.net/oauth/request_token';
$authurl = 'https://www.j66.org/oauth';
$acc_url = 'https://oauth.lvtao.net/oauth/access_token';
$api_url = 'https://oauth.lvtao.net/api/0.1';
$conskey = 'your_consumer_key';
$conssec = 'your_consumer_secret';
session_start();
// In state=1 the next request should include an oauth_token.
// If it doesn't go back to 0
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0;
try {
$oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HmacSHA1,OAUTH_AUTH_TYPE_URI);
$oauth->enableDebug();
if(!isset($_GET['oauth_token']) && !$_SESSION['state']) {
$request_token_info = $oauth->getRequestToken($req_url);
$_SESSION['secret'] = $request_token_info['oauth_token_secret'];
$_SESSION['state'] = 1;
header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']);
exit;
} else if($_SESSION['state']==1) {
$oauth->setToken($_GET['oauth_token'],$_SESSION['secret']);
$access_token_info = $oauth->getAccessToken($acc_url);
$_SESSION['state'] = 2;
$_SESSION['token'] = $access_token_info['oauth_token'];
$_SESSION['secret'] = $access_token_info['oauth_token_secret'];
}
$oauth->setToken($_SESSION['token'],$_SESSION['secret']);
$oauth->fetch("$api_url/user.json");
$json = json_decode($oauth->getLastResponse());
print_r($json);
} catch(OAuthException $E) {
print_r($E);
}
③ php 怎麼實現單點登錄
php 單點登錄並不復雜。單獨登錄 (SSO)其實就是讓用戶通過一次登錄訪問授權的網路資源。如果是要實現的話,就需要找專業的解決方案了,比如玉符SSO單點登錄解決方案。
玉符單點登錄的優勢主要有:
玉符SSO支持市面上所有標准協議,雲服務或者本地部署都搞得定,微軟的SAML、谷歌的OIDC,包括CAS、Oauth、JWT等待各種協議都支持
可以提供自研SDK,完美解決自研系統或者沒有標准介面應用的問題,只需要十幾行代碼就可以完成。
玉符單點登錄SSO已經實現產品化,交付迅速,時間短,安全性強,單點登錄全部通過token令牌實現,不會拿到用戶的密碼,安全可靠。
希望我的回答對你有幫助。
④ PHP是什麼
PHP(PHP:Hypertext Preprocessor遞歸縮寫)中文名字是:「超文本預處理器」,是一種廣泛使用的通用開源腳本語言,適合於Web網站開發,它可以嵌入HTML中。編程范型是面向對象、命令式編程的,截止2019年4月24日為止,最新的版本是PHP 5.6.0(28 Aug 2014),其操作的系統為windows/linux/Mac跨平台。
(4)phpoauth20開發實例擴展閱讀:
PHP的功能
1、創建博客
使用PHP創建博客wordpres,可以輕松創建博客。即使您不具備PHP知識,也可以使用它,但如果您可以編寫PHP,則可以自定義您的博客並創建主題。
2、網站開發
60%全球互聯網網站採用php技術,80%國內互聯網網站使用php開發。這些網站包含購物網站,政府企業網站,QQ空間,論壇博客等等。
3、移動端微網站開發以及小程序
移動設備的普及為移動互聯網的快速發展奠定了基礎!手機淘寶網站,手機京東網站等等, 微信公眾號應用中的微網站。
⑤ 緊急求助,微信設置「開發者中心」的 OAuth2.0網頁授權設置
1.OAuth 2.0網頁授權有兩種模式:
(1)
Base(基本型),用戶可直接通過鏈接訪問,相應的微信公眾賬號只能獲取用戶的openid,無法獲取到其它信息。
(2) Userinfo(用戶信息型),訪問時會彈出授權頁面,同意後微信公眾賬號可以獲取用戶其它信息,比如昵稱、頭像、性別、省份等等。
具體的設置方法,你可以按照韓順平的PHP微信開發課程來設置
⑥ 如何用PHP實現微信支付,求教。新手!說明詳細點
以PHP語言為例,對微信支付的開發流程進行一下說明:
1.獲取訂單信息。
2.根據訂單信息和支付相關的賬號生成sign,並且生成支付參數。
3.將支付參數信息POST到微信伺服器,獲取返回信息。
4.根據返回信息生成相應的支付代碼(微信內部)或是支付二維碼(非微信內),完成支付。
⑦ OAuth2.0網頁授權微信怎麼用java獲取openid
第一步:用戶同意授權,獲取code 引導用戶進入授權的URL 修改一些參數
在確保微信公眾賬號擁有授權作用域(scope參數)的許可權的前提下(服務號獲得高級介面後,默認帶有scope參數中的snsapi_base和snsapi_userinfo),引導關注者打開如下頁面:
⑧ php oauth2.0服務 怎麼調用
fputs($fp, "GET / HTTP/1.1\r\n");
fputs($fp, "Host: $url\r\n");
fputs($fp, "Accept: */*\r\n");
fputs($fp, "Referer: http://$url/\r\n");
fputs($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n");
fputs($fp, "Connection: Close\r\n\r\n");
}
while ($str = fread($fp, 4096))
$data .= $str;
fclose($fp);
return $data;
}
?>
⑨ 微信公眾平台開發,oauth2.0認證地址,打開jssdk頁面無法驗證通過
給你個PHP的例子:
下面的代碼保存為get_sdkper.php
<?php
require_once "jssdk.php";
//1.注意:所有的JS介面只能在公眾號綁定的域名下調用,公眾號開發者需要先登錄微信公眾平台進入「公眾號設置」的「功能設置」里填寫「JS介面安全域名」。
//2.填寫appid和secret
$appid="你的appid";
$secret="你的secret";
$getUrl=$_POST["url"];
$jssdk = new JSSDK($appid, $secret,$getUrl);
$signPackage = $jssdk->GetSignPackage();
echo("{\"appId\":\"".$signPackage["appId"]."\",\"timestamp\":\"".$signPackage["timestamp"]."\",\"nonceStr\":\"".$signPackage["nonceStr"]."\",\"signature\":\"".$signPackage["signature"]."\",\"url\":\"".$signPackage["url"]."\"}");
?>
下面是調用方法:
//調用微信JS API介面
var GetappId="",Gettimestamp="",GetnonceStr="",Getsignature="";
function CallWechatJSAPI()
{
$.ajax({
url:"get_sdkper.php",
type:"POST",
data:"url="+escape(location.href.split('#')[0]),
dataType:"JSON",
success:function(result){
var resultData = $.evalJSON(result);
if(resultData){
GetappId = resultData.appId;
Gettimestamp = resultData.timestamp;
GetnonceStr = resultData.nonceStr;
Getsignature = resultData.signature;
wx.config({
debug: false,
appId: GetappId,
timestamp: Gettimestamp,
nonceStr: GetnonceStr,
signature: Getsignature,
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareQQ',
'onMenuShareWeibo',
'hideMenuItems',
'hideAllNonBaseMenuItem',
'chooseImage',
'previewImage',
'uploadImage',
'downloadImage',
'getNetworkType',
'openLocation',
'getLocation',
'hideOptionMenu',
'closeWindow',
'scanQRCode',
'chooseWXPay',
'openProctSpecificView',
'addCard',
'chooseCard',
'openCard'
]
});
}
},
error:function(){
//alert("連接網路失敗,請重試。");
}
});
}