Access Token opslaan in database?
Ik ben bezig met het implementeren van de Instagram Basic Display API in mijn website. Het idee is om gebruikers de mogelijkheid te geven om hun laatste Instagram foto's te laten tonen op hun pagina op mijn website. Ik ben niet heel bekend met API's.
Ik heb het voor elkaar gekregen zoals ik het wil en voor me zie, maar mijn vraag is of ik het Access Token direct in de database mag opslaan? Of is dat vanuit veiligheidsoverwegingen niet de bedoeling? Om de foto's op de pagina te tonen heb ik telkens dat Access Token nodig. Is dat Access Token van de gebruiker uniek in combinatie met mijn App? Het Access Token is in principe 60 dagen geldig en moet binnen die tijd vernieuwd worden.
Groet
Gewijzigd op 20/01/2021 16:20:55 door G Jansma
Ik ken de API van Instagram niet, maar volgens mij is er een algemene end-point voor de API die de laatste feeds van een bepaalde user toont. Daar hoef je niet bij de user om (lastige) API-codes te vragen.
https://developers.facebook.com/docs/instagram-basic-display-api
Guides:
https://developers.facebook.com/docs/instagram-basic-display-api/guides/getting-access-tokens-and-permissions
Schijnt dat er recent 'major changes' zijn geweest voor de Instagram API:
https://embedsocial.com/blog/instagram-api-changes-2020/
Ze hebben nu twee varianten, eentje waarbij je ook kan reageren etc (Graph API) en eentje waarbij je alleen de foto's kan laten zien (Basic Display API). Ik ben bezig met die tweede variant.
Maar de gebruiker moet eerst toestemming geven aan de App door middel van de Authorization. Het accepteren daarvan is het enige dat de gebruiker zelf hoeft te doen. De gebruiker hoeft zelf dus niks met API-codes te doen. Daarna wordt de gebruiker geredirect en kan je de ?code=... uit die redirect link halen en via cURL inwisselen voor een access token. En die kortlevende token kan je weer inwisselen voor een langlevende token.
Maar om dus de User Media op te halen heb je uiteindelijk dus het Access Token nodig:
https://developers.facebook.com/docs/instagram-basic-display-api/guides/getting-profiles-and-media
Dit hele circus is hier ook juist voor bedoeld (dat er geen "waardevolle" informatie bij een 3e partij terecht komt). Vroeger werkte zoiets vaak via "geef ons je gebruikersnaam + wachtwoord, en dan post-en wij wat dingen voor je", maar als een database dan "op straat lag" lag ook meteen je hele account te grabbel. Dmv deze tokens is je account altijd veilig, hooguit wat tijdelijk ongemak (een gebruiker kan een app ook altijd de toegang ontzeggen).
Ok, zo schatte ik het zelf eigenlijk ook in, maar omdat ik niet zo bekend ben met API's en access tokens wilde ik het toch even navragen. De veiligheid staat toch voorop. Het access token leek me inderdaad ook specifiek te zijn voor mijn App, en dan zijn de gevolgen in geval van een lek beperkt ja. Bedankt voor jullie hulp!