如果应用程序无权访问浏览器控件或http上下文,是否可以刷新令牌?我有一个WinForm,它记录用户并获得同意,然后将令牌传递给Windows服务,以便将文件上传到OneDrive。当令牌过期时,似乎刷新令牌的所有方法都需要回调URL。
答案 0 :(得分:0)
如果您已经请求了wl.offline_access
范围,并且您在OAuth 2.0中使用了授权码授权流,则可以执行此操作。用户通过OAuth登录后,您将收到有效期为1小时的access_token
和有效期较长的refresh_token
。
每次您的服务需要代表用户开展工作时,您可以将refresh_token
兑换为新的access_token
和refresh_token
,然后使用{{ 1}}做工作。确保您保存新的access_token
,以确保延长过期时间。
通过这种方式,您可以拥有一项代表用户长时间执行操作的服务,而无需用户再次登录。但是,refresh_token
可能会过期或失效,因此您需要处理无法兑换refresh_token
的情况。