带有angularjs的github redirect_uri

前端之家收集整理的这篇文章主要介绍了带有angularjs的github redirect_uri前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在我的应用程序中使用 github添加登录.因此,在我的本地计算机上进行测试时,我将回调网址设置为http:// localhost:8000 / login / callback /.

之后,我添加了一个登录链接到我的页面,< a href =“https://github.com/login/oauth/authorize?client_id=CLIENT_ID\u0026amp;scope=user\u0026amp;redirect_uri=http://localhost :8000 / login / callback“>登录< / a>,以及

$routeProvider.when('/login/callback',{
  controller: 'loginCtrl'
});

它成功返回了一个代码,其中包含如下链接:http:// localhost:8000 / login / callback?code = cd07ff3b70f5d1d1b8a2.但angularjs无法正确响应.

Error response

Error code 404.

Message: File not found.

Error code explanation: 404 = Nothing matches the given URI.

我也尝试将redirect_url设置为http:// localhost:8000 /#/ login / callback,但是返回链接就像这样http:// localhost:8000 /?code = 61e9c8b73c073a0bccc0 /#/ login / callback

我需要将代码显示在url的末尾,而不是在中间,以便我可以使用$location.search().代码获取我的代码.我该如何正确设置?

喜欢改变我的redirect_uri或改变我的路由器?

解决方法

@lowerkey我仍然不知道如何处理这个,但我认为那是因为页面被重新加载.

如果你没有将html5Mode设置为true,那么将在URL上#,如果你重新加载页面,#将跟踪信息到$scope以使用htmlHistory api,这样应用程序即使在页面刷新.

但是一旦你将html5Mode设置为true,那么就没有#存储任何$scope信息,当页面重新加载时,angular无法找到相应的范围,因此返回404.

您可以查看$location section on angularjs guide,它有一节解释为什么会发生这种情况.

Page reload navigation

The $location service allows you to change only the URL; it does not allow you to reload the page. When you need to change the URL and reload the page or navigate to a different page,please use a lower level API,$window.location.href.

猜你在找的Angularjs相关文章