我在django网络应用程序上使用python social auth实现oauth .
我搜索了许多示例和实现,并发现它们中的每一个都在服务器端执行oauth . (甚至official document中使用的例子)
因此,例如,当客户端尝试从其谷歌驱动器获取数据时,由于授权令牌存储在服务器端,因此内容被下载到服务器然后被转发到客户端 .
以下示例的图表如下:
Client Server Google
1. oauth
--(provide id/pw)-->
--(request oauth)-->
<--(send auth token)-
<--(grant access)--
2. file download
--(select file)-->
-(auth token+request file)-->
<--(file content)--
<--(forward file)--
但对我来说,授权过程在客户端完成是更合适的 .
首先,通过让客户端直接从谷歌下载,可以减少大量的服务器< - >谷歌流量 . 其次,服务器不存储身份验证令牌,因此客户端的安全性更高 .
所以这是我的问题:
-
这是一个被广泛接受的oauth流程吗?如果是,那是什么原因?
-
是否有一个使用django和谷歌驱动器的好的oauth模板?
谢谢!