2016-09-11 6 views
1

Я пытаюсь реализовать OAuth2 для REST API, который будет поддерживать мобильные, настольные и веб-приложения.OAuth2 Удаление доступа к токенам из базы данных

Я прочитал Chapter 6. Refreshing an Access Token из Hardt, D., Ed., "The OAuth 2.0 Authorization Framework", RFC 6749, DOI 10.17487/RFC6749, October 2012

Согласно RFC, маркеры доступа и токенов обновления сохраняются в БД, и я делаю это с помощью MySQL.

Мой вопрос в какой момент/активности OAuth2 следует удалить все просроченные токены доступа и обновить токены.

Должен ли я запустить работу cron для этого?

+0

Похоже на разумный прецедент для встроенного [Планировщика событий MySQL] (https://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html) –

+0

@ Michael-sqlbot I прошли через документ, пока я должен прочитать об этом, хотя мне кажется трудным. :П –

ответ

0

Да, вы должны периодически запускать программу, которая удаляет истекшие токены доступа, обновлять токены и коды авторизации.

1

Я должен читать об этом, хотя, кажется, мне трудно

Убедитесь, что MySQL Event Scheduler включена на сервере. Если нет, включите его.

Предполагая, что таблица называется «маркер», и она имеет столбец под названием «expires_at» и этот столбец имеет индекс на нем, а затем create a scheduled event с запросом, как это:

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

Каждые 15 минут от время, когда вы первоначально определили событие, сервер выполнит этот запрос в фоновом режиме и очистит все истекшие сеансы.

Смежные вопросы