Linkedin OAuth 2.0 重定向 URL 不能包含片段标识符 (#)

Posted

技术标签:

【中文标题】Linkedin OAuth 2.0 重定向 URL 不能包含片段标识符 (#)【英文标题】:Linkedin OAuth 2.0 redirect URLs cannot contain fragment identifiers (#) 【发布时间】:2016-03-28 23:23:12 【问题描述】:

我有一个单页应用程序,其中 url 结构通常为 http://mysite/#myview

我正在尝试将此 URL 添加到 LinkdIn 应用设置中的授权重定向 URL 列表中,但我收到以下错误消息:

这是否意味着我无法从 LinkedIn API 重定向回任何包含 # 的网址?

我已经能够通过对 Twitter API 进行类似调用来做到这一点,但是它们不需要您像 LinkedIn 那样首先向它们注册 URL

【问题讨论】:

Oauth 2.0 隐式授权返回哈希中的令牌。这就是为什么它是“保留”的,我猜。但是,如果您的流程是服务器端的,则没有什么可以阻止您设置另一个回调 URL,例如 http://mysite/callback,然后将 HTTP 重定向到您想要的那个。 以前的答案不应该这样工作:***.com/questions/24912899/… 【参考方案1】:

正确 - LinkedIn 不允许在 OAuth 2.0 回调 URL 中使用 # 符号,但是您可以通过使用内部映射回您身边的 URL 参数来实现类似的效果:

https://www.example.com/auth/linkedin?ref=myview

然后您的服务器端处理程序可以处理 ref=myview 参数并将您重定向到 www.example.com/#myview

【讨论】:

以上是关于Linkedin OAuth 2.0 重定向 URL 不能包含片段标识符 (#)的主要内容,如果未能解决你的问题,请参考以下文章

Google API 和 OAuth 2.0 的正确重定向 URI

iOS 应用程序上的无效重定向 URI Linkedin API

我们为 Cordova iOS/Android 移动应用程序使用啥 OAuth 2.0 重定向 URI?

是否可以在没有重定向服务器的情况下使用 OAuth 2.0?

处理 OAuth 2.0 身份验证 - 在 ASP.NET MVC 应用程序中获取令牌重定向令牌响应

Android中LinkedIn的Oauth 2.0授权