Maar wanneer ik een POST request naar de API stuur, waar dezelfde code wordt uitgevoerd, wordt dit niet opgeslagen.
Dan zou ik daar eens naar kijken :).
De cookie zou je ook zelf kunnen maken. De kans dat je een session_key goed hebt gegokt die ook nog geldig is, is nogal klein. Toch is die aanwezig denk ik.
Daarom zul je aanvullende voorzieningen moeten treffen waarmee je met grotere zekerheid kunt stellen dat je met een zekere gebruiker van doen hebt. Enkel een sessie-id lijkt mij sowieso niet echt verstandig/voldoende voor deze check.
Misschien kun je op een of andere manier makkelijk gebruik maken van het feit dat je HTTPS gebruikt - al het dataverkeer wordt encrypted verstuurd/ontvangen. Je zult dan waarschijnlijk wel (extra) informatie moeten onthouden zodat je dingen kunt controleren, dus ik denk dat je dan toch (deels) aangewezen bent op de gebruikmaking van een database.
Ook lijkt het mij verstandiger om elke page-access de database te raadplegen om te kijken wat de status van een gebruiker is. Indien je deze informatie (rol, privileges etc.) in je sessie opslaat kun je hier niet direct op acteren, maar zul je moeten wachten totdat de sessie getimeout is of dat een gebruiker uitlogt. Of je moet functionaliteit hebben die iemand geforceerd uitlogt, maar dat lijkt mij de verkeerde insteek (borduurt verder op een andere tekortkoming: het "blijven hangen" van informatie in je sessie).