⊗ppSpAiAu 50 of 83 menu

API με εξουσιοδότηση σε PHP

Μπορούμε να κάνουμε το API μη δημόσιο, αλλά ιδιωτικό, προσβάσιμο μόνο με κωδικό πρόσβασης. Σε αυτήν την περίπτωση, κατά την πρόσβαση στο API μας, σε κάθε αίτημα εκτός από τις παραμέτρους θα πρέπει να μεταδίδουμε τον σωστό κωδικό πρόσβασης. Αυτός ο κωδικός πρόσβασης ονομάζεται διακριτικό (token).

Οι χρήστες του API μας θα πρέπει να λαμβάνουν αυτό το διακριτικό με κάποιον τρόπο. Για παράδειγμα, αγοράζοντας το. Σε αυτήν την περίπτωση ο κάθε αγοραστής θα έχει το δικό του διακριτικό.

Ας δούμε τη λειτουργία με τα διακριτικά με ένα παράδειγμα. Ας υποθέσουμε ότι το API μας δέχεται παραμετρικά έναν αριθμό και επιστρέφει το τετράγωνο αυτού του αριθμού. Ας κάνουμε αυτό το API ιδιωτικό. Ας προχωρήσουμε στην υλοποίηση.

Για αρχή, για απλότητα, ας φτιάξουμε ένα κοινό διακριτικό και ας το αποθηκεύσουμε σε απλή μορφή σε ένα αρχείο:

<?php $token = '12345'; ?>

Έτσι θα προσπαθούμε να έχουμε πρόσβαση στο API μας, περνώντας την παράμετρο και το διακριτικό:

http://api.loc/index.php?num=100&token=12345

Ας υλοποιήσουμε το API με έλεγχο διακριτικού:

<?php $token = '12345'; if (isset($_GET['token']) and $_GET['token'] === $token) { if (isset($_GET['num'])) { echo $_GET['num'] ** 2; } else { echo 'error'; } } else { echo 'incorrect token'; } ?>

Φτιάξτε ένα API, που παραμετρικά θα δέχεται μια ημερομηνία γενεθλίων και θα επιστρέφει πόσες μέρες απομένουν μέχρι αυτήν την ημερομηνία. Υλοποιήστε εξουσιοδότηση μέσω διακριτικού.

Τροποποιήστε το προηγούμενο πρόβλημα έτσι, ώστε τόσο η παράμετρος όσο και το διακριτικό να μεταδίδονται με τη μέθοδο POST.

Τροποποιήστε το προηγούμενο πρόβλημα έτσι, ώστε το διακριτικό να μεταδίδεται μέσω της κεφαλίδας HTTP X-Token.

Φτιάξτε τα πράγματα έτσι, ώστε τα διακριτικά να αποθηκεύονται σε μια βάση δεδομένων και ο κάθε χρήστης του API να έχει το δικό του διακριτικό.

Περιορίστε για κάθε χρήστη του API τον αριθμό των αιτημάτων σε 10 ανά ημέρα.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη