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