Sixtens hemsida Uppgifter Blogg Om

VED House bokningssystem

Gå till sida

Källkod

api/

database.php

api.php

ved/

monthBookingData.php

openingHoursException.php

bookingData.php

dayTimeframes.php

bookings.php

admin/

revokeToken.php

authorization.php

login.php

modules/

vedDatabase.php

utility.php

gyar/

log.php

auth/

revokeToken.php

authorization.php

login.php

station/

settings.php

log.php

modules/

gyarDatabase.php

databaseConnection.php

database.php

utility.php

credentials.json

weather/

latest.php

old.php

admin/

index.html

changeTimetable.html

login.html

js/

login.js

modules.js

admin.js

header.js

changeTimetable.js

cron/

vedClearExpiredTokens.php

api/ved/admin/authorization.php

1 lines
<?php
# authorization.php
# Funktion som API endpoints använder för att kontrollera en token.
# Används endast på de API metoderna som kräver administratorinlogg.

return function ($authType$authToken) {
    
# I vårt fall använder vi en Bearer token.
    
if ($authType != "Bearer")
        throw new 
APIError(401"Invalid authorization.");
    require_once 
"ved/modules/vedDatabase.php";
    
# Token hashas och jämförs med databasen.
    
$hashed hash("sha256"$authToken);
    
$token $db->query("SELECT tokenId FROM authToken WHERE tokenHash=:tokenHash AND expiresAt>CURRENT_TIMESTAMP AND (revokedAt IS NULL OR revokedAt>CURRENT_TIMESTAMP)", array("tokenHash" => $hashed));
    if (!
$token)
        throw new 
APIError(401"Invalid authorization.");

    
# Här hade man kunnat kolla ifall användaren är behörig att komma åt resursen, och eventuellt ge en 403 forbidden error.
    # Eftersom alla användare är administratörer med full makt över allting på sidan behövs inte det i det här fallet.
};
?>