QQ、微信、Fackbook等第三方登录使用OAuth2.0,随便找一些文档跟着做很快实现,没什么难度。等轮到Twitter时候,如果你也这样想,后面它就会证明你是错的!
Twitter在当前时间(2018年4月20日),用的依然是OAuth1.0,相比OAuth2.0是复杂了一点,但大概流程也差不多。不管Twitter为什么仍然使用OAuth1.0,也不争论哪个更加安全,在这只单纯说一下我踩过的坑,以及给一个本人成功请求的例子,供有需要的网友快速填坑。
网上找到很多关于Twitter第三方登录的例子,注意看了一下发布时间,已经是差不多10年前的作品,所有自己掉坑里面一度以为是参考的文档太古老了,其实他们的文章依然是正确的。想自己看Twitter官方文档,无奈是难懂的英文,大学英语4级过了也远应付不了呀。而且官方文档相对比较简单,对于刚刚接触的人来说,是真的看不懂呀。没去了解过OAuth1.0协议本身,大多工作都是快餐式网上拿来改改用,如果对OAuth1.0协议本身有了解的,应该好对付。有点啰嗦,受不了的网友可以到后面直接复制案例,修改成自己实现的Twitter账号参数测试运行。
正文:
Twitter登录难在哪里?难在HTTP请求时候带的认证头,和认证头里面的签名数据生成。这里只给第一个请求的案例,其他的需要自己动手做少少修改,相信有一个成功的例子,其它的也不成难题,其它接口请求可参考本文后面的参数文章。
1、请求URL:
//url,必需全部小写。
$url = 'https://api.twitter.com/oauth/request_token';
2、认证头里面参数:
$oauth_consumer_key = "xxxx";//根据自己Twitter账号上实际数据填写。
$oauth_nonce= time() . rand();//随机数,可自己实现不同的算法。
$oauth_signature_method="HMAC-SHA1";//固定值
$oauth_timestamp=time();//固定写法,请求时候的时间戳。
$oauth_version="1.0";//固定值
$oauth_signature="?";//签名串:较复杂,实现在后面
<