【发布时间】:2013-08-23 08:34:47
【问题描述】:
我在我的 django 项目中集成了 allauth,用户可以通过他们的 facebook 帐户登录。现在他们的令牌在数据库中可用,但是当我使用它们从 facebook 获取用户数据时,会导致令牌已过期的错误。 所以我想问:
- 当用户登录我的网站时,django-allauth 是否/可以更新令牌?
- 如果它可以/这样做,那么我如何在不让我的用户通过登录流程的情况下获得新的令牌(可能是伪造的登录流程)?
关于2的旁注: 我在 facebook 文档上搜索了这方面的内容,他们提供了一种通过 GET 调用刷新令牌的方法:
GET /oauth/access_token?
grant_type=fb_exchange_token&
client_id={app-id}&
client_secret={app-secret}&
fb_exchange_token={short-lived-token}
但这必须在令牌过期之前完成,而我在 cron 脚本中使用令牌来获取数据,所以这对我不起作用。
【问题讨论】:
-
过期的令牌对任何事情都没有好处。如果您可以使用它来获取有效令牌,那将完全违背让其过期的目的。
-
@user2357112 :这就是我要问的。有什么办法可以获得新鲜的代币吗?
-
how can i get a fresh token without having my users go through the login flow- 不可能! -
@Shadowfax:有什么解决方法吗?
-
您有什么要求?为什么需要长寿命令牌?
标签: python django facebook django-allauth