使用Glype架设免翻墙oauth认证的dabr
twa.sh(也就是之前的dabr.nl)继dabr.co.uk被封了,只好自己搭建了一个。基本上按照choc.li的帖子的说明来架设的,修正了无法logout的问题,对glype的允许的主机列表也做了修改。
这个dabr只对受邀请的用户开放,一些比较熟(并且经常上twitter)的朋友已经加在列表里了。如果需要用的话可以在帖子下面留言给我,说明你的twitter id。
首先要有一个能翻墙的主机,比如hellogfw.com。然后在上面架设好glype和dabr,比如分别在目录/glype和/dabr下。安 装/glype只需要把upload目录上传并重命名即可,需要cache功能的话注意在/glype/tmp目录下建立名字为cache的文件夹并设置 读写权限。安装dabr需要设置http服务器的url_rewrite,需要注册一个browser模式的twitter api,按照官方说明即可。
首先访问http://hellogfw.com/glype测试代理是否可用。然后开始配置glype。编辑/glype/include目录下的settings.php文件。
// 如果想要这个在线代理只能用来访问twitter的话 $CONFIG['whitelist'] = array("twitter.com","twimg.com","amazonaws.com","hellogfw.com");
在glype/plugins目录下编写hellogfw.com.php文件,内容为
<?php
$redirect = $URL[‘href’];
header(”Location: $redirect”);
exit;
修改glype目录下的browse.php文件,在
if ( $this->browsingOptions[‘tempCookies’] && $expires > $_SERVER[‘REQUEST_TIME’] ) {
$expires = 0;
}
的后面(在glype1.1里是1449行)加上
// glype保存在客户端的cookie有效期默认为一个小时 $expires = time() + 3600;
如果变量$expires的值是零的话cookie的有效期就是”end of this session”,我自己测试产生的结果是,如果cookie有效期为”end of this session”的话dabr无法删除它(cookie的域也指定了)。
修改dabr目录下的common/user.php文件的两处
function user_logout() { unset($GLOBALS['user']); setcookie('USER_AUTH', '', time() - 3600, '/'); setcookie('c[twitter.com][/][original_referer]', '', time() - 3600, '/'); setcookie('c[twitter.com][/][k]', '', time() - 3600, '/'); setcookie('c[twitter.com][/][lang]', '', time() - 3600, '/'); setcookie('c[twitter.com][/][guest_id]', '', time() - 3600, '/'); setcookie('c[twitter.com][/][_twitter_sess]', '', time() - 3600, '/'); } $authorise_url = 'https://twitter.com/oauth/authorize?oauth_token='.$token['oauth_token']; $authorise_url = 'http://hellogfw.com/glype/browse.php?u='.$authorise_url; header("Location: $authorise_url");
如果一切正常的话,进入dabr所在的页面,点击oauth登录的话就会重定向到glype的代理页面,输入用户名和密码之后会跳转到dabr。
P.S. 今天看到其其(@liruqi)架了一个twitese,用了一下,新版的twitese对oauth支持也挺不错的。而且还没有glype那个烦人的输入框。
P.S. 我本来是打算用itap这个dabr插件来 实现oauth认证的,只是我的web服务器是ngnix,我又不太清楚怎么修改url_rewrite,想想还是算了。两种办法各有优劣,用glype 代理连接到twitter的oauth页面的话,需要dabr显式的将带有oauth页面的url传递给glype,不是很安全。itap是在服务器端请 求,却有个小问题,key的获得等等都是通过正则表达式匹配来获得的,一旦twitter的页面更新,应该就不可用了。
认证后无法跳回到dabr的页面,跳到browse.php上了
很就前的教程了,可能失效了
dabr不用,我用奶瓶腿