Nasıl bir OAuth tabanlı bir sistem için temel bir düz metin parola kimlik doğrulaması geçiş?

4 Cevap php

Twitter API onun için temel kimlik doğrulaması durdurulan olacağını bugün öğrendim; itme OAuth karşı artık ama benim için doğru yol olsun o ya da kullanmak için nasıl bir ipucu yok.

Ben yapabilmek için bütün istediğim yayınlamak vurduğunuzda en son yayınlanan mesaja bağlayan bir tweet göndermek olduğunu. Şu anda ben farkında olan, düz metin olarak benim Twitter hesabı için oturum açma kimlik bilgilerini yolluyorum pek güvenli değil ama benim site oldukça küçük olduğu gibi, en azından şimdilik bir sorun değildir.

Ben bu temel PHP kodu kullanıyorum:

$status = urlencode(stripslashes(urldecode("Test tweet")));
$tweetUrl = 'http://www.twitter.com/statuses/update.xml';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "$tweetUrl");
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, "status=$status");
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");

$result = curl_exec($curl);
$resultArray = curl_getinfo($curl);

if ($resultArray['http_code'] == 200)
{
    curl_close($curl);
    $this->redirect("");
}
else
{
    curl_close($curl);
    echo 'Could not post to Twitter. Please go back and try again.';
}

Nasıl bir OAuth sistemine bu hareket mi? Ben büyük ölçüde herhangi öğreticiler / tavsiye takdir ediyorum. Şimdiden teşekkürler.

4 Cevap

I found this page/script useful when I implemented OAuth for Twitter: http://www.jaisenmathai.com/blog/2009/04/30/letting-your-users-sign-in-with-twitter-with-oauth/
I'm sure you can get this from the page I linked to, but the code I use with this class for my page is

$twtrObj=new EpiTwitter($consumer_key, $consumer_secret);
$twtrObj->setToken($tok, $sec);
$status="I just submited new artwork! http://gravityprops.com/dragonart/artwork?action=view&id={$id}";
$update=$twtrObj->post_statusesUpdate(array('status' => $status));
$tmp=$update->response;

$ tok ve $ sn ben veritabanından çekin belirli bir kullanıcı için simge ve gizli olmak. $ Consumer_key ve $ consumer_secret (I bağlantılı sayfası gibi aynı şekilde) ile ayrı bir dosyada ilan edilmiştir. Sadece PHP erişebilirsiniz böylece benim PHP gereken tüm dosyalar klasörünü içerir koydu.

Başlatmak için, niye düz http:// değil, SSL üzerinden hesap şifrenizi gönderiyoruz (https://)? Ben hemen o değiştirmek istiyorsunuz.

İkincisi: http://oauth.net/documentation/getting-started/

Çok Twitter'ın belgeleri okuyun, onlar bir yere sahip eminim.

This example çok iyi, ve Twitter's API Wiki biraz daha vardır.

Edit:
To upgrade you'll need to ask your users to click on the "login with Twitter" button instead of having them inputting their data. They'll be sent to Twitter OAuth page, and if they authorize your app you'll be able to procede normally. That way you don't have to deal with any passwords.

Sadece OAuth protokolü kullanıcı verilerine erişmek için kullanıcı yetkilendirme dayalı, bu yüzden ne istediğiniz kullanıcı yetkilendirme (twitter siteye yönlendirme) whiteout mümkün değildir.

Bu özelliği istediğiniz özel bir uygulama olup olmadığını ben bilmiyorum, ama wordpress için otomatik tweet eklentisi ne isterseniz olun, size nasıl yapıldığını görmek için onun koduna bakmak olabilir.