Token-perusteinen tunnistautuminen API:ssa PHP:llä
API:n voi tehdä niin, että se ei ole julkinen, vaan suljettu, saatavilla vain salasanalla. Tässä tapauksessa API:imme kutsussa jokaisen pyynnön mukana on lähetettävä oikea salasana parametrien lisäksi. Tällaista salasanaa kutsutaan tokeniksi.
API:n käyttäjien on hankittava tämä token jollain tavalla. Esimerkiksi ostamalla sen. Tässä tapauksessa jokaisella ostajalla on oma tokeninsa.
Katsotaan tokenien käyttöä esimerkin avulla. Oletetaan, että API:mme ottaa parametrina numeron ja palauttaa sen neliön. Tehdään tästä API:sta suljettu. Aloitetaan toteutus.
Aluksi yksinkertaisuuden vuoksi teemme yhden jaon tokenin ja tallennamme sen avoimeen muotoon tiedostoon:
<?php
$token = '12345';
?>
Näin käsittelemme API:amme, lähettäen parametrin ja tokenin:
http://api.loc/index.php?num=100&token=12345
Toteutetaan API tokenin tarkistuksella:
<?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';
}
?>
Tee API, joka parametrina ottaa syntymäpäivän ja palauttaa kuinka monta päivää on jäljellä kyseiseen päivämäärään. Tee token-perusteinen tunnistautuminen.
Muokkaa edellistä tehtävää niin, että sekä parametri että token lähetetään POST-metodilla.
Muokkaa edellistä tehtävää niin,
että token lähetetään HTTP
-otsikon X-Token kautta.
Tee niin, että tokenit tallennetaan tietokantaan ja jokaisella API-käyttäjällä on oma tokeninsa.
Rajoita jokaiselle API-käyttäjälle
päivittäisten pyyntöjen määrä 10:een
päivässä.