带有Angular的Google UserService logoutUrl#

时间:2015-11-06 00:55:18

标签: javascript angularjs google-app-engine angular-ui-router gae-userservice

我正在使用Google UserService获取我的应用引擎Angular应用的登录和注销网址,并尝试将重定向路径作为查询参数传递。这是Angular URL的一个示例:

http://localhost:8080/#/dashboard

在Java中,我试图像这样创建Url:

String logoutUrl = UserServiceFactory.getUserService().createLogoutURL(redirectPath);

redirectPath是预期的查询参数字符串“#/ dashboard”。

问题是使用包含的'#'生成的URL不起作用。它只是通过一个新的URL重定向到自己。以下是从UserService生成的URL的示例:

/_ah/logout?continue=%23%2Fdashboard

如果我只是将字符串“/”传递给端点,那么我会得到一个这样的URL:

/_ah/logout?continue=%2F

这可以按预期工作,并在根文档中加载我的Angular应用程序。我真的希望能够让我的UserService URLS按预期工作。有什么想法吗?

这是从上面的网址重定向到的网址:

http://localhost:8080/_ah/logout?continue=%23%2Fdashboard#/dashboard

1 个答案:

答案 0 :(得分:0)

我找到了问题的解决方案。如果我发送完整的URL而不仅仅是资源路径,UserService工作正常。我的Angular代码现在如下所示。该应用程序将获取登录URL,然后在登录时重定向到请求的URL。这实际上是在服务中,但我简化了StackOverflow的代码。

$http({
    url: '/rest/user/login_uri?redirectPath=' + encodeURIComponent($location.absUrl()),
    method: 'GET',
    contentType: "application/json"
}).success(function (data) {
    $window.location.href = data.uri;
}).catch(function (data) {
    //Handle failed request....
});

我希望这可以帮助有人继续前进。