我已经在php中实现了oAuth(目前用于推特),正如我在几个教程中读到的那样,你应该将访问令牌存储在db中以备将来使用。但是,我不知道您是否知道您是否为特定用户存储了访问令牌,以决定是否应将其从数据库中取出或重新生成它。这是描述我的问题的流程:
oAuth的主要工作流程很明确,但是不清楚如何处理返回用户以及应该存储哪些数据。
百万感谢!答案 0 :(得分:17)
您不应为每次访问重新生成令牌。只有在它过期时才生成它。我使用OAuth构建了twitter应用程序。在这里我的流程:
当用户登录时,我会检查他们是否在DB中有令牌
1.1。如果它不存在,请对它们进行身份验证,然后存储并使用生成的令牌
1.2。如果它存在,请使用它。
1.2.1。如果twitter没有抱怨,那么令牌仍然有效,请使用它。
1.2.2。如果Twitter抱怨,则令牌已过期。返回1.1。
1.2.3。如果经过x重试后Twitter仍然抱怨。有问题,请通知管理员!
以下是图解说明:
答案 1 :(得分:0)
我认为这里唯一缺少的是在用户第一次加入系统时生成一个随机(长且不可取的)用户ID,并永久存储它。通过这种方式,您可以判断谁正在采取行动