【问题标题】:OAuth2 Access token deletion from database从数据库中删除 OAuth2 访问令牌
【发布时间】:2017-01-18 21:34:59
【问题描述】:

我正在尝试为支持移动、桌面和网络应用程序的 REST API 实现 OAuth2。

我已阅读 Chapter 6. Refreshing an Access TokenHardt, D., Ed., "The OAuth 2.0 Authorization Framework", RFC 6749, DOI 10.17487/RFC6749, October 2012

根据 RFC,访问令牌和刷新令牌被保存到数据库中,我正在使用 MySQL 这样做。

我的问题是我应该在 OAuth2 的哪个点/活动中删除所有过期的访问令牌并刷新令牌。

我应该为此运行 cron 作业吗?

【问题讨论】:

  • 似乎是内置MySQL Event Scheduler的合理用例
  • @Michael-sqlbot 我已经阅读了一段时间的文档,尽管对我来说似乎很难,但我必须阅读它。 :P

标签: mysql node.js authentication oauth-2.0 access-token


【解决方案1】:

虽然对我来说似乎很难,但我必须阅读它

验证MySQL Event Scheduler 在服务器上已启用。如果没有,请启用它。

假设表名为“token”,它有一个名为“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 分钟,服务器将在后台运行该查询并清除所有过期的会话。

【讨论】:

    【解决方案2】:

    是的,您应该定期运行一个程序来删除过期的访问令牌、刷新令牌和授权码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-17
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2011-03-07
      • 2016-07-07
      • 2016-03-05
      • 2012-08-13
      相关资源
      最近更新 更多