繁体   English   中英

使用Angularjs,Pac4j和WSO2身份验证Play Framework

[英]Play Framework with Angularjs, Pac4j and WSO2 authentication

我正在使用角度与游戏框架。 我正在申请一个类似“ https://example.com/#/dashboard ”的网址。

我尝试使用pac4j和WSO2登录,但问题是登录后我无法保留URL。一旦登录,它就会导航到默认页面。

所以我打算保存请求的URL( https://example.com/#/dashboard ),以便在成功登录后我可以重定向到请求的页面

但我已尝试使用request.path(),request.uri(),request.queryString('')等..但我无法在播放服务器中获取该请求的URL。 我可以通过request.hostName()获取主机名(“example.com”)。 我怎样才能得到“/#/ dashboard”。 你们能帮助我吗?

我自己找到了解决方案。 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

.....
      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')
              ),
.....

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM