[英]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.