当前位置:嗨网首页>书籍在线阅读

03-认证和授权

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

7.1.1 认证和授权

认证(authentication)是确定某人是他所说的身份的过程。这需要服务器,因为我们永远不能只信任客户端提供的数据。如果认证只在客户端处理,恶意的黑客可以对认证机制进行逆向工程(reverse-engineer),创建所需的认证信息,冒充用户并窃取他们的账号。通常由用户输入用户名和密码来进行认证。

越来越多的开发人员开始转向第三方认证服务,比如由Facebook和Yahoo提供的服务。当和第三方进行认证时,需要用户提供认证信息(通常是用户名和密码)给第三方服务。例如,如果使用 Facebook 的认证,用户需要向 Facebook 的服务器提供他们的Facebook账号的用户名和密码。然后第三方服务器会和我们的服务器进行通信,以此来认证用户。对用户的好处是他们可以重复使用已经烂熟于心的用户名和密码。对开发人员的好处是可以把大部分单调乏味的实现细节“外包”出去,并能访问第三方的用户群体。

授权(authorization)是确保只有能访问数据的人和系统才能接收数据。可以给用户绑定权限来完成这个功能,这样当用户登入的时候,就会有一份什么是他们允许看到的记录。让服务端来处理授权是很重要的,这样没经授权的数据就不会发给客户端。否则,恶意的黑客又可以对应用进行逆向工程,访问他们不该看到的敏感信息。授权的附带好处是,因为它只发送授权用户看到的数据,这会使得发送给客户端的数据量减至最小,事务处理可能更加快速。