在启用routeConfig的angular2中使用Auth0
using Auth0 in angular2 with routeConfig enabled
我有一个问题,我希望你们中的一些人能回答,因为我在 google 上找不到解决方案。现在,我正在尝试对我的应用程序实施 Auth0 身份验证。
为了说明这一点,我创建了一个如下所示的 App 组件:
应用组件
@Component({
selector: 'app',
template: `
<div>
<div class="header wrapper">
<header class="row">
<div class="column small-12">
<a href="/">
<img src="/assets/img/logo.svg" title="" />
</a>
<a class="navigation-toggle icon-menu hide-for-large-up" (click)="toggleMenuState()" ></a>
</div>
</header>
</div>
<router-outlet></router-outlet>
<div class="footer wrapper">
<footer class="row">
<div class="column small-12">
<div class="container">
<div class="icon icon-ship hide-for-medium-down"></div>
</div>
</div>
</footer>
</div>
</div>
`,
encapsulation: ViewEncapsulation.None,
directives: [ ROUTER_DIRECTIVES, RouterOutlet, AmendmentComponent, AmendmentAccountComponent ]
})
@RouteConfig([
{ path: '/amendment/...', name: 'Amendment', component: AmendmentComponent, useAsDefault: true }
])
添加了 routeConfig,所以现在 URL 看起来像这样:localhost:3000/amendment
然后我创建了一个如下所示的修正组件:
@Component({
selector: 'amendment',
template: `
<div class="help wrapper">
<div class="row">
<ul class="column small-12">
<amendment-account></amendment-account>
</ul>
</div>
</div>
<div class="main-area wrapper">
<div class="row">
<router-outlet></router-outlet>
</div>
</div>
`,
encapsulation: ViewEncapsulation.None,
directives: [ CORE_DIRECTIVES, RouterOutlet, AmendmentAccountComponent, BookingsComponent, MainComponent, RegisterOrLoginComponent ],
styles: [`
agent {
display: block;
}
`]
})
@RouteConfig([
{ path: '/amendment/', name: 'Bookings', component: BookingsComponent, useAsDefault: true },
{ path: '/bookings', name: 'Bookings', component: BookingsComponent },
{ path: '/main/:id', name: 'Main', component: MainComponent },
{ path: '/main', redirectTo: ["Bookings"] },
])
在 HTML 中,您可以看到我正在加载组件 (AccountComponent)。我正在处理此组件中的 Auth0。
AccountComponent html 看起来像这样:
<li><a href="#" *ngIf="!loggedIn()" (click)="login()">Login</a></li>
<li><a href="#" *ngIf="loggedIn()" (click)="logout()">Logout</a></li>
我要做的是在 localhost:3000/amendment/login Url 上加载 Auth0 框。这对我不起作用,因为当我单击登录 Href link 时,由于 RouterConfig 的原因,它会快速转到 localhost:3000/amendment/bookings :(
所以我的问题是它不会停止并加载 Auth0 登录框。我可以看到它一瞬间,然后它重定向我。
有什么解决办法吗?
请注意,如果我删除所有 routerConfig 路径,它会起作用,因此不会发生重定向,但这不是我的解决方案..
我猜
(click)="login(); false"
就是您要找的。
我有一个问题,我希望你们中的一些人能回答,因为我在 google 上找不到解决方案。现在,我正在尝试对我的应用程序实施 Auth0 身份验证。
为了说明这一点,我创建了一个如下所示的 App 组件:
应用组件
@Component({
selector: 'app',
template: `
<div>
<div class="header wrapper">
<header class="row">
<div class="column small-12">
<a href="/">
<img src="/assets/img/logo.svg" title="" />
</a>
<a class="navigation-toggle icon-menu hide-for-large-up" (click)="toggleMenuState()" ></a>
</div>
</header>
</div>
<router-outlet></router-outlet>
<div class="footer wrapper">
<footer class="row">
<div class="column small-12">
<div class="container">
<div class="icon icon-ship hide-for-medium-down"></div>
</div>
</div>
</footer>
</div>
</div>
`,
encapsulation: ViewEncapsulation.None,
directives: [ ROUTER_DIRECTIVES, RouterOutlet, AmendmentComponent, AmendmentAccountComponent ]
})
@RouteConfig([
{ path: '/amendment/...', name: 'Amendment', component: AmendmentComponent, useAsDefault: true }
])
添加了 routeConfig,所以现在 URL 看起来像这样:localhost:3000/amendment
然后我创建了一个如下所示的修正组件:
@Component({
selector: 'amendment',
template: `
<div class="help wrapper">
<div class="row">
<ul class="column small-12">
<amendment-account></amendment-account>
</ul>
</div>
</div>
<div class="main-area wrapper">
<div class="row">
<router-outlet></router-outlet>
</div>
</div>
`,
encapsulation: ViewEncapsulation.None,
directives: [ CORE_DIRECTIVES, RouterOutlet, AmendmentAccountComponent, BookingsComponent, MainComponent, RegisterOrLoginComponent ],
styles: [`
agent {
display: block;
}
`]
})
@RouteConfig([
{ path: '/amendment/', name: 'Bookings', component: BookingsComponent, useAsDefault: true },
{ path: '/bookings', name: 'Bookings', component: BookingsComponent },
{ path: '/main/:id', name: 'Main', component: MainComponent },
{ path: '/main', redirectTo: ["Bookings"] },
])
在 HTML 中,您可以看到我正在加载组件 (AccountComponent)。我正在处理此组件中的 Auth0。
AccountComponent html 看起来像这样:
<li><a href="#" *ngIf="!loggedIn()" (click)="login()">Login</a></li>
<li><a href="#" *ngIf="loggedIn()" (click)="logout()">Logout</a></li>
我要做的是在 localhost:3000/amendment/login Url 上加载 Auth0 框。这对我不起作用,因为当我单击登录 Href link 时,由于 RouterConfig 的原因,它会快速转到 localhost:3000/amendment/bookings :(
所以我的问题是它不会停止并加载 Auth0 登录框。我可以看到它一瞬间,然后它重定向我。
有什么解决办法吗?
请注意,如果我删除所有 routerConfig 路径,它会起作用,因此不会发生重定向,但这不是我的解决方案..
我猜
(click)="login(); false"
就是您要找的。