首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Angularjs、Pac4j和WSO2身份验证的Play框架

使用Angularjs、Pac4j和WSO2身份验证的Play框架
EN

Stack Overflow用户
提问于 2016-04-08 22:59:59
回答 1查看 335关注 0票数 1

我正在使用angular和play框架。我正在请求一个类似于"https://example.com/#/dashboard“的网址。

我尝试使用pac4j和WSO2登录,但问题是登录后无法保留网址。登录后,它将导航到默认页面。

因此,我计划保存请求的网址(https://example.com/#/dashboard),以便在成功登录后可以重定向到请求的页面

但我尝试过使用request.path()、request.uri()、request.queryString('')等。但是我不能在播放服务器上得到那个需要的网址。我可以通过request.hostName()获取主机名(“example.com”)。如何获取"/#/dashboard“。你们能帮帮我吗。

EN

回答 1

Stack Overflow用户

发布于 2016-04-19 01:09:13

我自己找到了解决方案。url中'#‘符号后面的参数仅用于路由,因此我们的html只能读取和路由,服务器无法获取该值,因此pac4j无法使用此参数存储和重定向url。为了让这个东西工作,我们必须从url中删除散列'#‘。下面的链接将帮助你做到这一点。

https://scotch.io/tutorials/pretty-urls-in-angularjs-removing-the-hashtag

如果您使用的是Yeoman & generator-angular,请执行以下额外的步骤

https://www.npmjs.com/package/connect-modrewrite

我使用的是Yeoman & grunt,所以我改变了如下所示。在package.json中添加这个依赖项"connect-modrewrite“,然后在grunt中在livereload中添加以下代码

代码语言:javascript
复制
.....
      livereload: {
        options: {
          open: true,
          middleware: function (connect) {
            return [
              modRewrite(['^[^\\.]*$ /index.html [L]']), // Only this line need to be added
              connect.static('.tmp'),
              connect().use(
                '/bower_components',
                connect.static('./bower_components')
              ),
.....

Ref:http://jjt.io/2013/11/16/angular-html5mode-using-yeoman-generator-angular/,但此链接对于旧版本,对于新版本,请使用上面提到的链接(https://www.npmjs.com/package/connect-modrewrite)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36502929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档