我在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模板?

谢谢!