我有一个django网站,用户使用Django allauth来使用其Google帐户登录并向其Google驱动器授予权限。登录后,django-allauth
将为该用户保存一个令牌。这部分都正常工作。
我现在如何访问用户的Google驱动器(已授予权限)列出可用文件?大概这需要使用由于django-allauth
而保存的令牌。
我已经安装了python google api client,但正在努力找出如何使用用户的令牌列出其Google驱动器的内容。
有一个烧瓶示例here,我试图通过django-allauth
对其进行修改以便在django项目中使用。登录流程正常运行,但是django-allauth
不能确保请求访问Google驱动器。我尝试根据this更新设置:
SOCIALACCOUNT_PROVIDERS = {
"google": {
"SCOPE": [
"https://www.googleapis.com/auth/drive.metadata.readonly",
"https://www.googleapis.com/auth/userinfo.profile",
],
"AUTH_PARAMS": {"access_type": "offline"},
}
}
答案 0 :(得分:1)
对于现在阅读本文的任何人,当前版本的allauth确实支持API身份验证。
对于不在allauth的默认列表中的范围,您需要在SCOPE列表中提供完整的URL(例如https://www.googleapis.com/auth/drive),而不是仅提供范围名称(例如,电子邮件)。
答案 1 :(得分:0)
没有发布任何答案,所以我只是发布了我结束的操作。看来django-allauth
不能同时用于常规Google身份验证和api身份验证。
因此,暂时来说,用户首先必须使用由django-allauth
处理的Google帐户登录该网站。然后,一旦他们登录,他们可以选择授予对其Google驱动器的访问权限,然后为此启动新的身份验证流程(使用Google python api client)