OAuth2:为什么我们需要为用户代理重定向URI

Asa*_*bal 5 oauth salesforce

我最近用webserver流程创建了一个小应用程序.现在我正在尝试用户代理示例.我想知道为什么我们需要在用户代理流程中定义redirect-uri.

我正在使用Saleforce.com api:

http://wiki.developerforce.com/page/Digging_Deeper_into_OAuth_2.0_on_Force.com

redirect_uri授权服务器将通过重定向到此URI进行响应.此参数必须与应用程序配置的回调URL匹配.

wil*_*ywu 5

在用户代理程序流中,redirect_uri是用户在批准页面上单击"批准"后重定向到的位置.附加到redirect_uri上的是散列片段,然后是access_token,instance_url和其他oauth参数.

  • 同样对于用户代理流,redirect_uri的值确定您是否返回refresh_token.大多数情况下,在用户代理流程中不会返回刷新令牌.它仅在两种情况下返回:1)redirect_uri是自定义方案2)重定向URL完全是https://login.salesforce.com/services/oauth2/success,或者在Sandbox中,https://test.salesforce. com/services/oauth2/success您可以阅读https://login.salesforce.com/help/doc/en/remoteaccess_oauth_user_agent_flow.htm的refresh_token部分了解更多详情 (2认同)
  • 桌面客户端(如Salesforce for Outlook)可能没有redirect_uri来重定向其用户.因此,他们的oauth流将包含在弹出的IE窗口中.当用户点击oauth流时,桌面客户端正在侦听窗口事件.当弹出窗口导航到"/ services/oauth2/success"时,他们知道用户已完成,因此他们抓住oauth params并关闭弹出窗口. (2认同)