2016-09-11 2 views
1

Ich versuche, OAuth2 für eine REST-API zu implementieren, die mobile, Desktop- und Web-Anwendungen unterstützt.OAuth2 Access Token Löschen aus der Datenbank

I Chapter 6. Refreshing an Access Token von Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", RFC 6749, DOI 10.17487/RFC6749, October 2012

gelesen haben Laut RFC, Zugriffstoken und Refresh-Token werden in DB gespeichert und ich tue MySQL so verwenden.

Meine Frage ist, an welcher Stelle/Aktivität von OAuth2 sollte ich alle abgelaufenen Zugriffstoken und Aktualisierungstoken entfernen.

Soll ich Cron-Job dafür ausführen?

+0

Scheint wie ein angemessener Anwendungsfall für den integrierten [MySQL Event Scheduler] (https://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html) –

+0

@ Michael-sqlbot I Ich habe den Doc für eine Weile durchgespielt und muss darüber nachlesen, obwohl es mir schwer fällt. : P –

Antwort

0

Ja, Sie sollten regelmäßig ein Programm ausführen, das abgelaufene Zugriffstoken, Aktualisierungstoken und Autorisierungscodes löscht.

1

Ich habe zu lesen, darüber scheint jedoch schwierig zu mir

Stellen Sie sicher, dass die MySQL Event Scheduler auf dem Server aktiviert ist. Wenn nicht, aktiviere es.

die Tabelle Unter der Annahme, „Token“ genannt, und es hat eine Spalte namens „expires_at“ und die Spalte hat einen Index auf, und dann create a scheduled event mit einer Abfrage wie folgt:

CREATE EVENT purge_expired_tokens 
    ON SCHEDULE EVERY 15 MINUTE 
    DO DELETE FROM token WHERE expires_at < NOW(); 

Alle 15 Minuten von Wenn Sie das Ereignis ursprünglich definiert haben, führt der Server diese Abfrage im Hintergrund aus und bereinigt alle abgelaufenen Sitzungen.

Verwandte Themen