我的AngularJS应用程序需要访问用户的LinkedIn资料。为了实现这一点,我需要将用户重定向到一个LinkedIn URL,其中包含一个回调redirect_uri参数,该参数将告诉LinkedIn将用户重定向回我的Web应用程序,并在URL中包括一个“code”查询参数。这是传统的Oauth 2.0流程。
除了LinkedIn将用户重定向回以下URL之外,一切都很顺利:
http://localhost:8080/?code=XXX&state=YYY#/users/123/providers/LinkedIn/social-sites
为了使URL更加干净,我希望删除其中的?code=XXX&state=YYY
。用户不需要看到我从LinkedIn重定向接收到的查询参数。
我尝试使用$location.absUrl($location.path() + $location.hash()).replace()
,但它仍然在URL中保留了查询参数。
我也无法提取查询参数,例如"code",使用($location.search()).code
。似乎在上面的URL中,"#"前面的"?"是欺骗Angular的。