Beste php'ers,
Ik ben begonnen met het maken van een eigen Oauth2 server (er zijn veel standaard oplossingen maar ter oefening wil ik het gewoon zelf proberen). Nu heb ik wel een idee hoe ik het moet maken ik zit alleen met 1 vraag over hoe ik het moet aanpakken.

Als een client een 'Code Grant' verzoek doet dan moet er een return_uri worden bepaald. Nu ben ik overal aan het zoeken op internet of dit vanuit de 'client' moet worden meegegeven met het verzoek (dus in het get request of de header) OF dat een client al moet worden geregistreerd en daar al een return_uri vastlegt (dus via een systeem of iets in die trend).

Stel nu dat ik de return_uri vastleg in mijn systeem dan is dit iets in de trend van 'http://www.server.nl/returnpagina';

Maar wat nu als deze return_uri 'variabel moet zijn' dus iets als 'http://www.server.nl/returnpagina/123';. (waarbij 123 bijvoorbeeld een soort id is).
Hoe moet dat dan worden geregeld?
Zelf zou ik hierbij denken dat ik het gedeelte 'http://www.server.nl/returnpagina'; vastleg en dan '123' als een soort extra id zou mee kunnen laten geven in de header (dit lijkt mij de makkelijkste oplossing). Alleen is dit dan wel volgens 'het protocol'?

Ik ben aan het zoeken via de onderstaande sites maar kan hier niks over vinden:
http://www.bubblecode.net/en/2016/01/22/understanding-oauth2/#Authorization_Code_Grant
https://tools.ietf.org/html/rfc6749

maar kan niks hierover vinden over wat de 'officiele' manier is om dit te doen. Heeft iemand enig idee hoe dit normaliter wordt aangepakt?

Ik hoop dat mijn vraag duidelijk is aangezien ik nog geen 'goed' codevoorbeeld heb (maar volgens mij is dat hier ook niet nodig).

bedankt!
Google OAuth2 geeft de mogelijkheid om de redirect url op te geven als deel van de grant flow, dit is gewoon deel van de request uri.
Ik dacht dat het i.v.m. beveiligingsoverwegingen geen goed idee was om dit gewoon in de flow op te geven? Maar als ik andere systemen bekijk gebeurt dit inderdaad gewoon. Ik ga dit dan gewoon implementeren.

Mijn originele vraag (zonder return_uri) als parameter kon opgelost worden (na lang zoeken) met de 'state' parameter.

Bedankt voor het antwoord in ieder geval! Ben nog wel een tijdje bezig hiermee dus misschien dat ik (als ik er echt niet uitkomt) wel weer een vraag post.

Reageren