我正在将fitbit集成到我的应用程序中,并且我不希望用户每次都重定向到SafariViewController以获取访问令牌,因为我正在存储访问令牌,但24小时后访问令牌即将到期
在fitbit Fitbit OAuth 2.0的API中,有一个参数ordered :: (a -> a -> Bool) -> [a] -> Bool
ordered f = ordered'
where ordered' (x:xs@(x2:_)) = f x x2 && ordered' xs
ordered' [_] = True
ordered' [] = True
,用于定义访问令牌的到期时间。在该参数中,我传递expires_in
1年,但之后,Access Token也将在24小时内到期,之后我必须将用户重定向到SafariViewController。
那么,是否有任何解决方法,以便我不必将用户重定向到SafariViewController,我将在后台刷新令牌的任何方法,类似于此。
任何帮助都将不胜感激。
干杯!!!!!
答案 0 :(得分:5)
您无需为access_token设置任何expires_in
值。 access_token的到期在fitbit服务器中检查,而不是在您的服务器中。因此,通过设置expires_in
将无法正常工作。相反,在Fitbit授权后,您将获得refresh_token
以及您的acess_token。通过调用
$result=$fitbit_object->getRefreshtoken(YOUR_REFRSH_TOKEN);
结果将在您的db中包含新的access_token和refresh_token.Store/update。因此,当您想要使用aceess_token时,可以使用新的refresh_token来刷新access_token。它对我来说很有用。