BoxAPI中的授权过程

时间:2014-01-15 14:25:49

标签: zend-framework oauth box-api

我是Oauth2认证流程的新手,我有点卡住,因为我想使用Zend Framework OAuth模块连接到Box.com API。

我找到了connect to an Oauth service with zend framework的一个例子,我已经在youtube上关于oauth服务的一些教程,以及我最初理解为什么我已经理解了连接到授权过程(与client_id响应url,response_type设置为“code”)。这就是我从教程中学到的东西。但是在www.box.com网站的开发者部分,有一个奇怪的参数可以进行GET调用并尝试授权应用程序访问用户内容:

 https://www.box.com/api/oauth2/authorize?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&state=security_token%3DKnhMJatFipTAnM0nHlZA

参数“state”必须使用有关应用程序的信息进行更新,或者必须保留在online tutorial中?我有点困惑。

1 个答案:

答案 0 :(得分:1)

state参数是可选的。它旨在为您的应用程序提供额外的安全层。

考虑OAuth工作流程:

  1. 您的应用将用户重定向到Box.com
  2. Box会提示用户输入凭据和授权
  3. Box会将用户重定向回您的应用程序并附带授权信息。
  4. 您在步骤 1 中发送给Box的state会在步骤 3 中通过Box发送回您的应用程序。您的应用程序可以比较这些值,以验证步骤 3 中的Box重定向是否源自您的应用程序发出的请求。

    state可以是任意字符串。选择一些长度的随机字符串。应为每个新OAuth请求生成新值(即,步骤 1 ),因为它旨在为特定用户标识单个OAuth周期。

    这有意义吗?