我正在构建一个使用google选项登录的Web应用程序。最初,我们会询问用户的profile
和email
范围(离线访问)。作为回报,我们得到code
。
使用此代码,我请求refresh_token
,然后access_token
。这两个令牌都存储在客户端的cookie中(你可能会说在客户端存储refresh_token
是一个坏主意)。
在我的应用中,我已经为用户提供了访问其驱动器文件的权限。为此,我使用增量范围。所以我向用户询问驱动器许可。作为回报,我得到code
- >新refresh_token
- >新access_token
。
但问题是:
当用户清除cookie或注销时。然后,当他登录时,会生成新的refresh_token
和access_token
,其中只包含profile
和email
的范围。所以我必须再次询问用户他的驱动器权限。在他已经给予用户之后,我不想每次都要求用户获得驾驶许可。
可能的解决方案:
在服务器端存储refresh_token
?这是正确的方法??