ik heb een php bestand gemaakt, www.domein.nl/beschermt.php waar een overzicht op wordt getoond. dit bestand heb ik beschermt dmv
werkt allemaal prima, je krijgt van de browser een promt naar je user-id en je pass. nadat je deze gegeven heb, krijg mag je beschermt.php zien.
maar nu wil/moet ik die stap automatiseren. een ander php bestand op een andere server moet de inlog "voor me doen". maar op zo'n manier dat de gebruiker de logingegevens niet ziet (oftwel "onder water").
een oplossing die ik bedacht: een php pagina (www.anderdomein.nl/doe_de_login_voor_me.php) bouwen die een redirect doet naar beschermt.php met de user-id en pass in de url, als volgt:
dit werkt je wordt automatisch ingelogt en je kan het overzicht op beschermt.php zien, maar het nadeel is dat de inlog gegevens gewoon in de adres bar staan van de browser en dat mag niet, want de logingegevens mogen niet aan de gebruiker worden getoont. Het moet dus anders opgelost worden, maar hoe?
ik zit te denken aan een oplossing waarbij doe_de_login_voor_me.php een soort header meestuurt waar de login meteen in verwerkt is.
je kan immers ook een header als:
meesturen.
ik heb een heleboel gelezen over headers op http://www.ietf.org/rfc/rfc2617.txt en daar las ik iets als
iemand een oplossing, of tip hoe ik hiermee verder kom?
PHP:
1
| header("WWW-Authenticate: Basic realm=blaat"); |
werkt allemaal prima, je krijgt van de browser een promt naar je user-id en je pass. nadat je deze gegeven heb, krijg mag je beschermt.php zien.
maar nu wil/moet ik die stap automatiseren. een ander php bestand op een andere server moet de inlog "voor me doen". maar op zo'n manier dat de gebruiker de logingegevens niet ziet (oftwel "onder water").
een oplossing die ik bedacht: een php pagina (www.anderdomein.nl/doe_de_login_voor_me.php) bouwen die een redirect doet naar beschermt.php met de user-id en pass in de url, als volgt:
PHP:
1
2
3
4
5
6
| $user-id = "pietje"; $pass = "fikkie"; //url maken aan de hand van de logingegevens $url = "http://" . $user-id . ":" . $pass . "@www.domein.nl/beschermt.php?var=waarde"; //redirect header("Location: $url"); |
dit werkt je wordt automatisch ingelogt en je kan het overzicht op beschermt.php zien, maar het nadeel is dat de inlog gegevens gewoon in de adres bar staan van de browser en dat mag niet, want de logingegevens mogen niet aan de gebruiker worden getoont. Het moet dus anders opgelost worden, maar hoe?
ik zit te denken aan een oplossing waarbij doe_de_login_voor_me.php een soort header meestuurt waar de login meteen in verwerkt is.
je kan immers ook een header als:
PHP:
1
| header("Refresh: 5;url=$PHP_SELF") |
meesturen.
ik heb een heleboel gelezen over headers op http://www.ietf.org/rfc/rfc2617.txt en daar las ik iets als
maar ik begrijp niet hoe ik dit vervolgens in php (bv in de header) moet meegeven, om geauth te worden. de header wordt namelijk naar de client gestuurd en niet andersom (naar de server om te authentificeren).basic-credentials = base64-user-pass
base64-user-pass = <base64 [4] encoding of user-pass, except not limited to 76 char/line>
user-pass = userid ":" password
userid = *<TEXT excluding ":">
password = *TEXT
iemand een oplossing, of tip hoe ik hiermee verder kom?