为什么oauth是在服务器端完成的

时间:2018-06-06 09:17:38

标签: django oauth authorization python-social-auth web-development-server

我在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)--

但对我来说,授权过程在客户端完成感觉更合适。

首先,通过让客户端直接从谷歌下载,可以减少大量的服务器&lt; - &gt;谷歌流量。其次,服务器不存储身份验证令牌,因此客户端的安全性更高。

所以这是我的问题:

  1. 这是一个被广泛接受的oauth流吗?如果是,那是什么原因?

  2. 是否有使用django和google驱动器的好的oauth模板?

  3. 谢谢!

0 个答案:

没有答案