Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. PHP
Code

Pengesahan dan kebenaran menggunakan Auth0 dalam Bahasa pengaturcaraan PHP

by
Difficulty:IntermediateLength:LongLanguages:

Malay (Melayu) translation by Meyria (you can also view the original English article)

Dalam artikel ini, kami akan meneroka perkhidmatan Auth0, yang memberikan pengesahan dan kebenaran sebagai perkhidmatan. Auth0 membolehkan anda menyediakan ciri pengesahan asas dan otentikasi untuk aplikasi anda dalam sekelip mata.

Apa itu Auth0?

Auth0 adalah pengesahan sebagai alat servis yang membuat pelaksanaan ciri-ciri berkaitan pengesahan di laman web anda mudah. Sekiranya anda telah membina aplikasi dan anda hanya mahu menyumber keluar ciri pengesahan dan kebenaran, perkhidmatan seperti Auth0 adalah sesuatu yang harus anda pertimbangkan.

Izinkan saya cepat meringkaskan apa yang Auth0 perlu menawarkan:

  • rakam masuk tunggal
  • pengesahan multifaktor
  • login passwordless
  • Pengurusan pengguna
  • dan banyak lagi

Dalam artikel ini, kami akan meneruskan beberapa kaedah log masuk tunggal yang boleh anda laksanakan di aplikasi web anda untuk memanfaatkan ciri pengesahan yang disediakan oleh perkhidmatan Auth0.

Pada separuh pertama artikel, kami akan meneroka cara menyediakan fungsi pengesahan asas dalam aplikasi web PHP sisi pelayan. Pada babak kedua, saya akan menerangkan bagaimana anda boleh mendapatkan API tersuai anda dengan menyediakan kebenaran OAuth menggunakan perkhidmatan Auth0.

Integrasi Pengesahan Pelantar Server

Dalam seksyen ini, kita akan pergi melalui bagaimana anda boleh dengan cepat menubuhkan pengesahan asas untuk applikasi-pelayan web yang menggunakan Auth0. Malah, pasukan Auth0 itu sudah menyediakan sampel GitHub berguna yang menunjukkan contoh-contoh asas, jadi kami akan menggunakan bahawa alih-alih merubah.

Sebelum bergerak ke hadapan, pastikan untuk memasang penggubah yang akan digunakan untuk memasang SDKs Auth0 sebenar yang menggunakan fail composer.json. Juga, jika anda mahu ikut bersama-sama dengan contoh-contoh dalam artikel ini, pergi ke depan dan dapatkan akaun percuma dengan Auth0.

Sediakan Projek

Mari kita pergi dan ambil klon projek sampel.

Teruskan menjalankan perintah pemasangan komposer untuk memasang kebergantungan.

Menurut fail komposer.json, ia sepatutnya telah memasang pakej vlucas/phpdotenv dan auth0/auth0-php.

Perpustakaan vlucas/phpdotenv digunakan untuk menginisialisasi pembolehubah persekitaran dari fail .env. Oleh itu, ia membolehkan anda untuk memisahkan konfigurasi dari kod yang berubah di antara persekitaran.

Sebaliknya, pakej auth0/auth0-php adalah yang akan membantu kami menyediakan kebenaran dalam permohonan kami.

Seterusnya, mari kita sediakan konfigurasi untuk aplikasi kami dalam fail .env. Teruskan dan buat fail .env dengan menyalinnya dari fail .env.example.

Ia mengandungi nilai konfigurasi yang akan digunakan oleh perpustakaan Auth0.

Anda harus dapat mencari kebanyakan tetapan di bawah Aplikasi> Apl Lalai> Tetapan pada papan pemuka Auth0. Sila ambil perhatian bahawa saya menggunakan aplikasi lalai yang dibuat oleh sistem. Sudah tentu, anda boleh meneruskan dan mencipta aplikasi baru jika anda mahu melakukannya.

AUTH0_CALLBACK_URL ialah URL aplikasi anda di mana Auth0 akan mengalihkan pengguna selepas log masuk dan log keluar. Nilai yang anda tetapkan dalam medan ini mesti dikonfigurasi di bawah URL Balik Balik Dibenarkan di bawah tetapan aplikasi pada papan pemuka Auth0.

Anda akan menemui tiga fail utama yang melaksanakan kebanyakan logik pengesahan.

  • index.php: Ini adalah halaman utama yang memaparkan sama ada log masuk atau log keluar berdasarkan keadaan pengguna.
  • login.php: Skrip ini akan dimulakan apabila anda mengklik pada butang log masuk, dan ia akan mengalihkan pengguna ke antara muka login Auth0 untuk login. Siarkan siaran, mereka akan diarahkan semula ke AUTH0_CALLBACK_URL.
  • logout.php: Skrip ini akan dimulakan apabila anda mengklik pada butang log keluar, dan ia akan mengalihkan pengguna ke Auth0 di latar belakang, log keluarnya, dan bawa mereka kembali ke AUTH0_CALLBACK_URL.

Fail Projek Utama

Mari cepatkan setiap fail dalam projek permulaan.

Skrip Masuk

Kami akan mulakan dengan fail login.php.

Pada permulaannya, kami telah memasukkan autoloader yang bertanggungjawab memuatkan kelas-kelas yang berkaitan dengan Auth0 dan persekitaran. Selepas itu, kami memulakan pembolehubah konfigurasi dari fail .env menggunakan fungsi getenv.

Seterusnya, kami memberi instantiate objek Auth0 dan memanggil kaedah log masuk yang mengalihkan pengguna ke Auth0 untuk log masuk. Apabila masuk, pengguna akan diarahkan semula ke laman web kami.

Anda boleh log masuk menggunakan akaun sosial seperti Facebook, Google dan sebagainya, atau buat akaun baru semasa login. Dalam kedua-dua kes, Auth0 akan membuat rekod untuk pengguna baru pada akhirnya. Anda boleh mengaktifkan log masuk sosial yang berlainan di bawah Sambungan>Sosial pada papan pemuka Auth0. Anda juga boleh menyemak senarai pengguna yang log masuk menggunakan Auth0 pada papan pemuka Auth0 di bawah pautan Pengguna.

Skrip Log Keluar

Seterusnya, mari lihat cepat pada fail logout.php.

Ini berfungsi hampir sama dengan fail login.php, kecuali ia akan dipanggil apabila pengguna log keluar. Kaedah logout dipanggil untuk mengakhiri sesi pengguna dalam aplikasi anda. Selepas itu, pengguna akan diarahkan semula ke Auth0 supaya perkhidmatan itu dimaklumkan mengenai aktiviti logout pengguna. Akhirnya, pengguna akan diarahkan semula ke aplikasi anda.

Fail Indeks

Akhirnya, mari kita melalui fail index.php, yang merupakan titik masuk permohonan kami.

Di sini, kami menggunakan kaedah getUser objek $auth0 untuk melihat sama ada sesi aktif. Sekiranya tidak ada sesi aktif, kami akan memaparkan pautan Masuk, yang memerlukan pengguna untuk login.php dan memulakan aliran log masuk. Sebaliknya, kami akan menyambut pengguna dan memaparkan pautan Log Keluar jika pengguna sudah log masuk.

Jadi itu adalah pelaksanaan aliran pengesahan asas bagi aplikasi sisi pelayan.

Selamat api tersuai anda dengan OAuth2

Dalam seksyen ini, kita akan lihat bagaimana anda boleh mendapatkan api tersuai anda dengan melaksanakan aliran pemberian kod OAuth2 kebenaran. Saya berharap anda biasa dengan aliran standard pemberian kod kebenaran kerana kami tidak akan pergi ke butir-butir itu. Semaklah kami lain-lain jawatan di sini pada Envato Tuts jika anda mahu untuk mendapatkan kelajuan sampai dengan OAuth2.

Sebaliknya, kami akan menyelam terus pelaksanaan sebenar. Teruskan dan buat file auth_code_grant_example.php dengan kandungan berikut.

Mari lihat bagaimana kod ini berfungsi!

Mulai Aliran Kebenaran

Pertama, kami menyediakan pautan yang menghantar pengguna ke pelayan Auth0 untuk memulakan aliran kebenaran.

Sila gantikan {AUDIENCE}, {CLIENT_ID}, dan {CALLBACK_URL} dengan nilai yang sepadan dengan permohonan anda. Parameter {AUDIENCE} harus digantikan dengan nilai medan Pengenalpastian yang terdapat di bawah API> {APLIKASI API ANDA}> Tetapan pada papan pemuka Auth0.

{SOME_RANDOM_STRING} harus diganti dengan nilai unik yang sukar ditebak. Rentetan ini digunakan untuk menghalang serangan CSRF. Juga, pastikan untuk menggantikan {AUTH0_DOMAIN} dengan nama domain anda, seperti yang telah dibincangkan sebelumnya.

Mendapatkan Token Akses

Apabila pengguna mengklik pada pautan Masuk, mereka akan dibawa ke pelayan Auth0 untuk pengesahan. Setelah pengesahan, mereka akan diminta memberi kuasa akses aplikasi ke profil anda. Kebenaran pos, pengguna akan diarahkan semula ke aplikasi anda dengan kod sebagai parameter $_GET.

Seterusnya, kami boleh menukar kod ini untuk mendapatkan token akses.

Seperti yang anda lihat, ia mengambil satu panggilan CURL untuk mengambil token akses.

Hubungi Endpoint API Custom Anda

Sebaik sahaja anda mempunyai token akses, anda boleh menghubungi titik akhir API khusus anda dengan memasukkannya di tajuk.

Endpoint API Protected-Protected

Fail sumber daya API fictitious demo_api_server.php mungkin kelihatan seperti ini:

Mari cepatkan bahagian-bahagian penting kod ini dengan cepat.

Mengesahkan Token Akses

Anda bertanggungjawab untuk mengesahkan token akses masuk sebelum memberikan akses kepada sumber yang dilindungi. Dan itulah yang kami lakukan dalam coretan berikut. Kami telah menggunakan kelas utiliti JWTVerifier untuk mengesahkan token akses.

{SIGNING_ALGORITHM} harus diganti dengan nilai bidang Algoritma Penandatanganan yang terdapat di bawah API> {APLIKASI API ANDA}> Tetapan.

Oleh itu, inilah cara anda melindungi API tersuai anda jika anda ingin menggunakan aliran OAuth2 dalam perkhidmatan Auth0.

Kesimpulan

Hari ini, kami meneruskan perkhidmatan Auth0, yang menyediakan pengesahan dan kebenaran sebagai perkhidmatan. Setelah memperkenalkan perkhidmatan Auth0, kami meneruskan beberapa contoh praktikal untuk menunjukkan bagaimana anda dapat mengintegrasikannya dengan aplikasi PHP anda.

Sila berasa bebas untuk menghantar cadangan dan pertanyaan anda menggunakan suapan di bawah!

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.