【问题标题】:OAuth2: Why do we need redirect URI for user agentOAuth2:为什么我们需要用户代理的重定向 URI
【发布时间】:2012-05-16 07:13:41
【问题描述】:

我最近做了一个带有网络服务器流的小应用程序。现在我正在尝试用户代理示例。我想知道为什么我们需要在用户代理流程中定义一个重定向 uri。

我正在使用 Saleforce.com api:

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

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

【问题讨论】:

    标签: oauth salesforce


    【解决方案1】:

    在用户代理流程中,redirect_uri 是用户在批准页面上单击批准后被重定向到的位置。在 redirect_uri 上附加一个哈希片段,然后是 access_token、instance_url 和其他 oauth 参数。

    【讨论】:

    • 谢谢威利。对什么协议、uri 格式可以在 redirect_uri 中是否有任何限制?
    • redirect_uri唯一的限制是它的scheme不能是http。它必须是 https 或自定义方案(如 myiphoneapp://)。第二种情况对 iOS 应用程序很有用。例如,您可以为您的 iOS 应用注册自定义 URL 方案。然后当用户点击 Approve 时,您的手机将打开该应用程序,而不是在 Safari 中导航到该 url。
    • 同样对于用户代理流,redirect_uri 的值决定了你是否取回了一个 refresh_token。大多数情况下,在用户代理流程期间不会返回刷新令牌。它仅在两种情况下返回:1)redirect_uri 是自定义方案 2)重定向 URL 正好是 login.salesforce.com/services/oauth2/success,或者在 Sandbox 中,test.salesforce.com/services/oauth2/success 您可以阅读 login.salesforce.com/help/doc/en/… 的 refresh_token 部分了解更多详细信息
    • 为什么有人要使用重定向到 login.salesforce.com/services/oauth2/success?
    • 桌面客户端(如 Salesforce for Outlook)可能没有用于重定向用户的 redirect_uri。因此,他们的 oauth 流程将包含在弹出的 IE 窗口中。当用户点击 oauth 流程时,桌面客户端正在监听窗口事件。当弹出窗口导航到“/services/oauth2/success”时,他们知道用户已经完成,所以他们抓住 oauth 参数并关闭弹出窗口。
    猜你喜欢
    • 1970-01-01
    • 2019-11-16
    • 2021-07-19
    • 2019-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    相关资源
    最近更新 更多