Implementasi Disqus Single Sign-On (SSO) pada Django


Artikel ini membahas mengenai bagaimana cara implementasi atau mengaktifkan fitur Single Sign-On (SSO) milik Disqus ke project yang menggunakan web framework Django. Berikut ini poin-poin yang akan dibahas nanti :
  • Apa itu Disqus ?
  • Mengenal Single Sign-On (SSO)
  • Menggunakan Module django-disqus
  • Menampilkan Komentar Disqus pada Django
  • Implementasi Single Sing-On menggunakan django-disqus

Apa itu Disqus ?

Disqus merupakan platform komentar yang banyak digunakan oleh ribuan situs di internet. Dengan menggunakan Disqus, website kita bisa mendapatkan sistem komentar degan fitur yang kaya dan lengkap dengan integrasi dengan media sosial, administrasi dan moderasi tinngkat lanjut, dan juga fungsi forum. Lebih hebatnya lagi untuk memasang disqus di web tidaklah sulit, cukup memasang script yang disediakan oleh disqus pada area yang ingin kita terapkan fitur komentar dan disqus akan muncul pada halaman web tersebut.
Supaya bisa mendapatkan script untuk website anda, tentu saja anda perlu mendaftarkan diri ke disqus dan membuat forum baru untuk web anda.

Mengenal Single Sign-On

Apabila anda membuat website, maka akan sangat terbantu dengan adanya disqus karena anda tidak perlu lagi memikirkan mengenai pembuatan fitur komentar, karena anda tinggal memasang script yang disediakan disqus pada halaman website milik anda. Hal tersebut tentu saja membuat pengunjung yang ingin memberikan komentar perlu memiliki akun disqus dan login terlebih dulu ke disqus. Jika website anda hanyalah memberikan informasi saja hal itu mungkin tidak begitu dipikirkan, lalu bagaimana jika web yang anda buat memiliki fitur yang memungkinkan pengunjung mendaftarkan diri ke web ? Jika anda menggunakan disqus maka yang terjadi adalah setelah pengguna website milik anda berhasil login ke web anda, mereka masih harus login lagi ke disqus untuk melakukan komentar. Hal tersebut dinilai sangatlah tidak efisien, karena user harus login lagi padahal tadi sudah login juga.
Disinilah Single Sign-On berperan, Single Sign-On memungkinkan pengguna untuk menggunakan cukup satu akun saja dari suatu layanan kemudian dapat menggunakan layanan lain sekaligus. Maksudnya adalah, jika user sudah login ke web anda, maka mereka tidak perlu lagi login ke disqus untuk berkomentar, karena dengan fitur SSO user dapat menggunakan semua fitur yang ada di web baik itu fitur dari dalam atau dari luar web (seperti disqus yang merupakan penyedia sistem komentar pihak ketiga) dengan sekali login menggunakan akun pada web anda. Cukup menarik bukan ?

Menggunakan Module django-disqus

Jika anda membuat website dengan menggunakan web framework Django, maka anda akan lebih mudah menerapkan fitur komentar disqus dengan bantuan module bernama django-disqus. Module satu ini memungkinkan anda mengintegrasikan website berbasis Django untuk menggunakan sistem komentar pihak ketiga yakni Disqus. Cara memasangnya pun tidaklah sulit, tentu saja pertama anda harus sudah memiliki akun disqus dan membuat forum untuk web anda pada disqus. Kemudian selanjutnya baru melakukan setup untuk module ini dengan langkah sebagai berikut :

Install django-disqus

Untuk menginstall django-disqus kita dapat menggunakan pip seperti berikut :
$ pip install django-disqus

Konfigurasi django-disqus

Setelah install, langkah selanjutnya adalah melakukan konfigurasi pada project django milik anda dengan cara tambahkan disqus pada daftar INSTALLED_APPS di file settings.py.
Kemudian anda perlu tambahkan forum shortname yang disediakan oleh disqus untuk web anda ke file settings.py juga. Untuk mendapatkan shortname bisa dilihat dengan cara :
  • Login ke Disqus.
  • Masuk ke menu "Settings" pada forum yang kita ingin ambil shortname-nya.
  • Masuk ke menu "General"
  • Anda akan menemukannya pada field shortname seperti yang terlihat pada gambar berikut ini.
Setelah mendapatkan shortname, kini letakkan shortname tersebut ke file settings.py seperti contoh berikut ini.
Langkah selanjutnya adalah mengatur konfigurasi situs pada django. Cara termudah adalah dengan menggunakan django admin, sehingga anda dapat menambahkan situs anda melalui django admin secara visual. Namun, bisa juga dengan cara lain melalui command line dengan menggunakan django shell. Silahkan masuk ke django shell dengan menggunakan perintah :
$ python manage.py shell
Kemudian di dalam django shell jalankan perintah-perintah berikut (sesuaikan dengan kebutuhan anda, misalnya nama situs dan nama domain tentu berbeda dengan yang tampil disini) :
>>> from django.contrib.sites.models import Site
>>> Site.objects.all()
[<Site: example.org>]
>>> s = Site.objects.all()[0]
>>> s.domain = 'domain-website.com'
>>> s.name = 'domain-website.com'
>>> s.save()
>>> Site.objects.all()
[<Site: domain-website.com>]

Menampilkan Komentar Disqus pada Django

Sebelumnya anda telah menginstall serta mengkonfigurasi django-disqus, sekarang saatnya anda coba untuk menampilkan komentar disqus pada halaman web yang anda inginkan. Letakkan templatetag disqus berikut ini di posisi yang diinginkan !
Sebagai contoh jika web yang anda buat misalnya adalah sebuah blog, maka biasanya kolom komentar akan ditampilkan pada halaman artikel. Biasanya komentar ditampilkan di bawah artikel, karena itu letakkan templatetag disqus di bawah artikel seperti ini misalnya :
Selamat, kini disqus sudah muncul pada halaman web anda !
Tampilan Komentar Disqus pada Halaman Web
Bila diperhatikan pada gambar di atas terdapat tanda kotak berwarna merah, itu menunjukkan tombol untuk login yang artinya saat ini user belum login ke web, sehinga di disqus pun juga meminta untuk login.
Oleh karena itu sekarang saya akan mencoba untuk login pada website untuk melihat seperti apa jadinya. Berikut tampilan setelah saya mencoba untuk login sebagai admin.
Tampilan halaman web setelah login
Setelah diperhatikan ternyata ketika saya login ke web, di disqus masih saja meminta untuk login. Nah, pada tahap selanjutnya nanti kita akan mencoba untuk mulai mengaktifkan fitur SSO pada disqus.

Implementasi Single Sign-On menggunakan django-disqus

Menurut yang tertulis pada websitenya, fitur Single Sign-On pada disqus saat ini adalah gratis, namun anda diharuskan untuk melakukan request ke tim support disqus untuk mengaktifkan fitur ini pada akun milik anda.

Mengirim Tiket Permohonan Pengaktifan Fitur SSO Disqus

Jadi langkah pertama adalah mengirim ticket request ke tim support disqus melalui link ini : http://disqus.com/support/?article=contact_SSO. Biasanya ticket akan direspon dalam waktu kurang lebih 1x24 jam tergantung jam kerjanya.
Tampilan form request untuk aktivasi SSO disqus
Tampilan halaman setelah submit request

Konfigurasi Remote Domain

Apabila anda telah mendapatkan respon dan disetujui oleh tim support, maka anda sudah bisa mengakses halaman SSO disqus di https://disqus.com/api/sso/. Disana anda akan diminta untuk mengkonfigurasi remote domain. Cara kerja remote domain pada dasarnya mirip dengan shortname pada setiap forum yang anda buat di disqus, namun bedanya satu remote domain ini hanya untuk satu akun, dan disqus sendiri merekomendasikan menggunakan satu remote domain untuk satu situs. Jika anda membutuhkan remote domain tambahan, anda dapat membuat akun baru lagi pada disqus yang sudah diaktifkan juga SSOnya. Remote domain ini bersifat permanen, oleh karena itu buatlah remote domain yang baik karena jika ada kesalahan tidak akan bisa dirubah.

Mendapatkan API Disqus

Selanjutnya anda perlu mendapatkan PUBLIC KEY dan SECRET KEY untuk mengakses API milik disqus, caranya pertama anda perlu membuat application baru jika belum punya. Silahkan buat application baru di https://disqus.com/api/applications/register/. Setelah anda membuat application, maka anda akan mendapatkan PUBLIC KEY dan SECRET KEY yang nanti perlu anda set pada project milik anda.
API key disqus
Jangan lupa juga untuk mengatur setting pada application anda untuk mengaktifkan SSO pada application tersebut dengan cara :
  • Buka application anda
  • Masuk ke menu Settings
  • Masukkan domain-domain dimana SSO akan digunakan
  • Pilih remote domain yang tadi sudah anda buat

Application Settings

Set API Key ke Django

Setelah mendapatkan API key, sekarang kita kembali lagi ke file settings.py untuk meletakkan API key tersebut disana seperti contoh berikut ini :

Aktifkan Single Sign-On (SSO)

Nah, sekarang semua sudah siap. Kini saatnya untuk meletakkan templatetag SSO dihalaman dimana disqus diletakkan. Sebelumnya kita telah meletakkan disqus dihalaman artikel, kini cukup tambahkan saja di bawah templatetag yang sudah dipasang sebelumnya seperti ini :
Sekarang mari kita  coba akses lagi halaman dimana disqus diletakkan, maka tampilannya akan menjadi seperti berikut ini :
Tampilan halaman setelah SSO diaktifkan
Seperti yang bisa anda lihat, kini disqus sudah tidak meminta untuk login kembali, melainkan login secara otomatis mengikuti user yang sedang login saat ini pada website tersebut. Jadi user yang sudah punya akun di web tersebut tidak harus login lagi dengan menggunakan disqus untuk berkomentar.
Selamat, anda telah berhasil menggunakan fitur Single Sign-On (SSO) dari disqus pada web framework Django !

Referensi

Page : 1 2 3 4 5 6

0 komentar