Ik heb zojuist de laatste hand gelegd aan een applicatie welke XML / JSON data kan extraheren uit een database waar verschillende projecten in staan van onze software. Op deze manier kan nu door middel van AJAX calls (of CURL in PHP) zeer dynamische informatie naar boven worden gehaald en in niet-dynamische sites geplakt worden en het werkt als een trein.
Van de projecten zal 70% vrijelijk toegankelijk zijn voor iedereen, dus iedereen die die URL weet kan datgene opvragen. Op zich is dat geen probleem.
Het probleem ligt echter bij die andere 30%. Dat zullen projecten zijn die niet iedereen in zal mogen zien en ik zit dus al een tijd te zoeken naar een oplossing, aangezien ik dit wel werkend wil hebben met statische HTML met daarin AJAX-calls.
Ik heb op Google gezocht, maar kom daar alleen oplossingen tegen waar je een username en password moet meegeven in de AJAX-call, maar dat lijkt me zeer onveilig, aangezien je die dan letterlijk in de JavaScript hebt staan. Je kan natuurlijk een pop-up doen waar ze gevraagd worden en deze dan meesturen, maar dat lijkt me ook geen prettige manier, omdat je dat dan elke keer moet doen voor een nieuwe request, aangezien er soms meerdere van dit soort AJAX-calls op een website gedaan zullen worden (3 a 4 max.).
Heeft iemand een idee hoe ik dit het beste kan doen? Via CURL gaat het sowieso wel werken, maar dan kan het alleen bij PHP-pagina's en dat is niet direct wenselijk, maar op zich geen ramp. Ook kan ik via een PHP website gewoon inloggen en sessie-informatie opslaan waardoor het ook werkt, maar het fijnste zou zijn als het niet dynamisch kan zijn, maar gewoon een statische site.
Ik had een plan om het als volgt te doen, met in [ ] waar het plaats vind:
1. [CLIENT] Check of project beveiligd is en of er een token beschikbaar is
2. [CLIENT] Als er geen token is toon dan een loginscherm en stuur deze data naar de server
3. [SERVER] Login informatie correct, dan stuurt deze een token terug welke opgeslagen wordt in de database en zeg... 10 minuten geldig is. Token is alleen geldig i.c.m. projecten waarvoor user geautoriseerd is.
4. [CLIENT] Gebruik deze token voor volgende AJAX-calls. En sla de token tijdelijk op als cookie.
5. [SERVER] Server checkt of token valide is en bij dit project hoort. Indien dat zo is geeft de server informatie vrij.
Nu leek dit mij een redelijk goede methode, maar ik weet het niet 100% zeker. Zijn er mensen die mij kunnen bijsturen of mij op een ander idee kunnen brengen?
Van de projecten zal 70% vrijelijk toegankelijk zijn voor iedereen, dus iedereen die die URL weet kan datgene opvragen. Op zich is dat geen probleem.
Het probleem ligt echter bij die andere 30%. Dat zullen projecten zijn die niet iedereen in zal mogen zien en ik zit dus al een tijd te zoeken naar een oplossing, aangezien ik dit wel werkend wil hebben met statische HTML met daarin AJAX-calls.
Ik heb op Google gezocht, maar kom daar alleen oplossingen tegen waar je een username en password moet meegeven in de AJAX-call, maar dat lijkt me zeer onveilig, aangezien je die dan letterlijk in de JavaScript hebt staan. Je kan natuurlijk een pop-up doen waar ze gevraagd worden en deze dan meesturen, maar dat lijkt me ook geen prettige manier, omdat je dat dan elke keer moet doen voor een nieuwe request, aangezien er soms meerdere van dit soort AJAX-calls op een website gedaan zullen worden (3 a 4 max.).
Heeft iemand een idee hoe ik dit het beste kan doen? Via CURL gaat het sowieso wel werken, maar dan kan het alleen bij PHP-pagina's en dat is niet direct wenselijk, maar op zich geen ramp. Ook kan ik via een PHP website gewoon inloggen en sessie-informatie opslaan waardoor het ook werkt, maar het fijnste zou zijn als het niet dynamisch kan zijn, maar gewoon een statische site.
Ik had een plan om het als volgt te doen, met in [ ] waar het plaats vind:
1. [CLIENT] Check of project beveiligd is en of er een token beschikbaar is
2. [CLIENT] Als er geen token is toon dan een loginscherm en stuur deze data naar de server
3. [SERVER] Login informatie correct, dan stuurt deze een token terug welke opgeslagen wordt in de database en zeg... 10 minuten geldig is. Token is alleen geldig i.c.m. projecten waarvoor user geautoriseerd is.
4. [CLIENT] Gebruik deze token voor volgende AJAX-calls. En sla de token tijdelijk op als cookie.
5. [SERVER] Server checkt of token valide is en bij dit project hoort. Indien dat zo is geeft de server informatie vrij.
Nu leek dit mij een redelijk goede methode, maar ik weet het niet 100% zeker. Zijn er mensen die mij kunnen bijsturen of mij op een ander idee kunnen brengen?
[ Voor 3% gewijzigd door armageddon_2k1 op 10-11-2009 08:40 ]
Engineering is like Tetris. Succes disappears and errors accumulate.