① 有关 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("连接网络失败,请重试。");
}
});
}