Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Cara Mengautentikasi Pengguna Dengan Twitter OAuth

by
Length:MediumLanguages:

Indonesian (Bahasa Indonesia) translation by Diangr (you can also view the original English article)

Mulai 16 Agustus, Twitter tidak akan lagi mendukung protokol otentikasi dasar untuk platformnya. Itu berarti satu-satunya cara untuk mengotentikasi pengguna adalah melalui aplikasi Twitter. Dalam tutorial ini, saya akan menunjukkan cara menggunakan Twitter sebagai sistem otentikasi satu klik anda, sama seperti yang kami lakukan dengan Facebook.


Langkah 1: Menyiapkan Aplikasi

Pertama-tama kita perlu menyiapkan aplikasi Twitter baru.

  • Daftarkan aplikasi baru di dev.twitter.com/apps/
  • Isi kolom untuk situs anda, pastikan untuk memilih Browser dalam Jenis Aplikasi, dan setel URL Panggilan Balik ke sesuatu seperti http://localhost.com/twitter_login.php (http://localhost/ tidak akan diterima karena tidak memiliki nama domain).
  • Terakhir, pilih Baca & Tulis. Isi captcha, klik "Daftar Aplikasi," dan terima Ketentuan Layanan.

Sekarang, anda akan melihat layar seperti yang ditunjukkan di bawah ini.

Kami akan menggunakan kunci Konsumen dan nilai-nilai rahasia Konsumen segera.

Setelah selesai, mari unduh pustaka. Karena kami akan mengkodekan dengan PHP, tampaknya yang terbaik adalah twitteroauth; tetapi jika anda menggunakan bahasa lain, anda akan temukan perpustakaan lain yang bagus di sini.

Temukan direktori twitteroauth di dalam file zip, dan ekstrak ke folder aplikasi anda.

Akhirnya, karena kami menggunakan Twitter untuk mengotentikasi pengguna, kami memerlukan tabel basis data untuk menyimpan pengguna tersebut. Inilah contoh cepat dari apa yang akan kita lakukan.

Perhatikan bidang oauth_token dan oauth_secret. OAuth Twitter membutuhkan token dan token_secret values ​​untuk mengautentikasi pengguna, jadi itu sebabnya kami memasukkannya. Dengan itu, kita selesai dengan pengaturan!


Langkah 2: Pendaftaran pengguna

Pada langkah ini kita, akan melakukan tiga hal:

  • Meminta otorisasi dari Twitter.
  • Mendaftarkan atau, jika pengguna sudah terdaftar, masuk ke pengguna.
  • Mengatur data ke dalam suatu sesi.

Meminta otorisasi

Alur kerja OAuth dimulai dengan membuat URL untuk permintaan tersebut; pengguna dialihkan ke URL itu dan dimintai otorisasi. Setelah mengabulkannya, aplikasi mengalihkan kembali ke server kami dengan dua token di parameter URL, yang diperlukan untuk otentikasi.

Mari kita mulai dengan memasukkan pustaka dan memulai sesi handler.

Setelah itu, mari buat instance TwitterOAuth baru, berikan kunci konsumen dan rahasia konsumen yang diberikan Twitter kepada kami saat kami membuat aplikasi. Kemudian, kami akan meminta token otentikasi, menyimpannya ke sesi, dan mengarahkan pengguna ke Twitter untuk otorisasi.

Simpan sebagai twitter_login.php, kunjungi http://localhost.com/twitter_login.php atau apa pun nama host lokal anda. Jika semuanya berjalan dengan benar, anda harus dialihkan ke twitter.com, dan Anda akan melihat sesuatu seperti ini.

Klik izinkan, dan anda akan dialihkan ke http://localhost.com/twitter_oauth.php -- karena kami menetapkan URL ini sebagai parameter dalam pernyataan getRequestToken. Kami belum membuat file itu, jadi seharusnya ada kesalahan. Buat file itu, dan kemudian sertakan perpustakaan dan mulai sesi, seperti yang kami lakukan di file pertama.

Setelah itu, kita akan membutuhkan tiga hal:

  • Autentifikasi dalam data kueri URL
  • Berikan token dari sesi
  • Rahasiakan rahasia dari sesi

Jadi, hal pertama yang harus dilakukan dalam skrip ini adalah memvalidasi data ini dan mengarahkan ulang jika salah satu variabel ini kosong.

Sekarang, jika semuanya sudah diatur, di dalam kondisional kita akan membuat instance TwitterOAuth, tetapi dengan token yang baru saja kita dapatkan sebagai parameter ketiga dan keempat; setelah itu, kita akan mendapatkan token akses, yang merupakan array. Token itu adalah yang akan kita simpan ke database. Akhirnya, kami akan melakukan tes cepat untuk melihat apakah semuanya berjalan lancar.

Jika tidak ada yang salah, print_r harus menampilkan data pengguna. Anda bisa mendapatkan id pengguna dengan $user_info->id, nama penggunanya dengan $user_info-> screen_name; ada banyak info lain di sana juga.

Sangat penting untuk menyadari bahwa oauth_verifier belum digunakan sebelum ini. Jika anda melihat info pengguna dengan benar dan kemudian memuat ulang halaman, skrip akan melemparkan kesalahan karena variabel ini telah digunakan. Cukup kembali ke twitter_login.php dan secara otomatis akan menghasilkan token baru lainnya.

Pendaftarkan pengguna

Sekarang kita memiliki info pengguna, kita dapat melanjutkan dan mendaftarkannya, tetapi pertama-tama kita harus memeriksa apakah mereka ada dalam basis data kita. Mari kita mulai dengan menghubungkan ke database. Tambahkan baris-baris ini di awal skrip.

Ubah info database sesuai kebutuhan. Sekarang, tepat di bawah tempat kami mengambil info pengguna, kami harus memeriksa pengguna di basis data kami. Jika dia tidak ada di sana, kami akan memasukkan info. Jika pengguna telah terdaftar, kita harus memperbarui token, karena Twitter telah menghasilkan yang baru dan yang kita miliki dalam database sekarang tidak dapat digunakan. Akhirnya, kami mengatur info pengguna ke sesi vars dan redirect ke twitter_update.php.

Perhatikan bahwa pertanyaan-pertanyaan ini tidak divalidasi; jika anda meninggalkannya sebagaimana adanya, anda meninggalkan database anda rentan. Akhirnya, di bawah koneksi database, kita harus mengatur pemeriksaan untuk memverifikasi bahwa pengguna login.

Anda sekarang dapat menyapa pengguna dengan nama penggunanya.

Mari menuju sisi menyenangkan: memperbarui, mengikuti, dan membaca.


Langkah 3: Membaca status

Ada lebih dari dua puluh kategori sumber daya yang tersedia: garis waktu, tweet, pengguna, tren, daftar, pesan langsung, dll. Masing-masing memiliki banyak metode, anda dapat memeriksa semuanya di dokumentasi resmi. Kita akan sampai ke dasar-dasar, karena sebagian besar fitur ini diakses dengan cara yang sama.

Sama seperti dua skrip lainnya, kita perlu membuat instance TwitterOAuth, termasuk variabel dalam sesi.

Kami akan mulai dengan garis waktu pengguna. Referensi memberitahu kita bahwa jalan adalah statuses/home_timeline; abaikan versi dan format, perpustakaan akan mengurusnya.

Itu akan memberi anda garis waktu. Anda dapat mengambil setiap item dengan loop foreach. Namun, referensi menentukan beberapa parameter opsional seperti count, yang membatasi berapa banyak tweet akan diambil. Bahkan, parameter kedua get adalah array dari setiap opsi yang diperlukan, jadi jika anda ingin mengambil empat puluh tweets terbaru, inilah kode:

Juga, anda dapat melihat garis waktu orang lain, selama itu tidak dilindungi. status/user_timeline membutuhkan id atau nama layar pengguna. Jika anda ingin memeriksa timeline @nettuts, anda harus menggunakan cuplikan berikut:

Seperti yang anda lihat, setelah mengautentikasi, jadwal membaca sangat mudah.


Langkah 4: Persahabatan

Dengan pertemanan, anda dapat memeriksa apakah seorang pengguna mengikuti yang lain, serta mengikuti atau berhenti mengikuti pengguna lain. Cuplikan ini akan memeriksa apakah anda mengikuti saya dan dan akan membuat tindak lanjut jika tidak.

Tapi pertama-tama, periksa friendships/exists dan friendships/create referensi. Perhatikan sesuatu? metode friendships/create adalah POST. Untungnya, perpustakaan menyertakan fungsi post(), yang berfungsi sama seperti fungsi get(); perbedaan utama adalah bahwa get() adalah untuk membaca dan post() adalah untuk membuat, menghapus atau memperbarui.

Bagaimanapun, friendships/exists memerlukan dua parameter: user_a dan user_b, dan friendships/create hanya membutuhkan satu, baik screen_name atau user_id.

Anda dapat berhenti mengikuti pengguna dengan kode yang pada dasarnya sama yang menciptakan tindak lanjut, cukup ganti create dengan destroy:


Langkah 5: Posting Update

Ini mungkin bagian yang paling menarik, karena ini inti Twitter: memposting pembaruan, seperti yang anda bayangkan, cukup mudah. Path adalah statuses/update, metode adalah POST (karena kita tidak membaca), dan satu argumen yang diperlukan adalah status.

Sekarang buka halaman profil Twitter anda dan anda akan melihat tweet anda.

Mari retweet pembaruan @Nettuts 'mengumumkan Kompetisi HTML 5; statusnya adalah 19706871538 dan referensi memberitahu kita bahwa path adalah statuses/retweet/:id, di mana :id adalah id status yang akan kita retweet. Metodenya adalah POST dan tidak memerlukan parameter tambahan.

Untuk menghapus tweet, anda harus melewati id status yang akan anda hancurkan di parameter pertama, seperti retweeting. Jika id tweet adalah 123456789, kode untuk menghancurkan akan.

Tentu saja, kode ini hanya dapat menghapus tweet yang dibuat oleh pengguna yang diautentikasi.


Kesimpulan

API Twitter cukup mudah dimengerti; itu jauh lebih didokumentasikan daripada Facebook (meskipun Facebook menawarkan perpustakaan di rumah). Sayangnya, otentikasi tidak semulus yang kita harapkan, tergantung pada data sesi.

Satu hal yang patut diperhatikan adalah, begitu pengguna Twitter telah diotorisasi (dengan asumsi aplikasi memiliki izin baca dan tulis), anda memiliki banyak kendali atas akun ini. Jika anda mengubah sesuatu atas nama pengguna tanpa izinnya, anda akan membuat masalah. Gunakan dengan hati-hati!

Perubahan API yang datang ke Twitter akan menolak otentikasi dasar; Twitter berfokus untuk menghentikan penipuan yang tak terhitung jumlahnya yang menipu pengguna agar menyerahkan kredensial masuk mereka. OAuth adalah solusinya; dan, jika anda telah bekerja melalui tutorial Facebook Connect, anda sekarang dapat memberikan pengguna situs web atau aplikasi anda dengan login cepat tanpa kredensial, menggunakan pilihan anda dari dua jejaring sosial yang paling banyak digunakan. Betapa kerennya itu?

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.