3.13 授权
是什么
用户想要在无须从头开始的情况下参与网站。他想从其他网站中导入自己的数据和文件,如图3-24所示。
图3-24:Twitter的授权界面让Imgur应用可以访问Twitter授权和个人信息
何时使用
通过访问另一个网站的数据和文件,可以增强或扩展网站上的功能(例如,下文示例中提到的A网站)。
网站的用户所产生的内容或数据可能会增强用户参与的其他网站的体验效果(例如,下文示例中提到的B网站)。
如何使用
成功的授权需要两个网站的相互配合:一个网站(A网站)的功能特性可以通过用户数据发挥更大的作用,另一个网站(B网站)有可以共享的数据或文件。
A网站
在自动利用密码的反模式访问用户数据前,请确认对方网站是否采用了OAuth。如果对方已经采用的话,要尽早采用相关协议,以方便数据传输。
A网站应该询问用户想访问哪些数据。
显示可能的选择,例如Twitter;LinkedIn用于一般的身份认证;flickr、Photobucket、smugmug.com等用于共享图片;或者通过雅虎通讯录、Plaxo.com、谷歌等共享联系人。
一旦用户选择了其数据所在的网站后,A网站就应该给用户发送授权访问权限。
关于数据将被如何使用的信息应该在A网站显示出来。
B网站
使用OAuth来推动整个授权过程。
A网站应该将其用户发送给B网站。用户登录账户后,B网站应该询问用户是否真的想与A网站共享数据。
用户同意后,会被带到A网站,此时已经允许用户使用B网站的数据在A网站进行互动了。
关于A网站如何使用信息的承诺应该清楚地告知B网站的用户。
提供一种允许用户在任何时刻取消授权的机制。
为用户提供一种简单的撤销权限的方法。
为何使用
采用OAuth这类授权流程和协议可以让用户在不暴露自己用户名和密码的情况下访问不同的网站。与使用密码的反模式相比,这种数据共享的方法更好一些。
相关模式
密码的反模式