내 Angular 2 응용 프로그램에서 Auth0 인증을 사용하고 있습니다.Auth0 라우팅 오류가있는 각도 2 404
내 응용 프로그램에서 localhost를 실행해도 문제가 없지만 서버에서 실행할 때 (내 도메인에서) 멈추었습니다.
내 문제는 경로에있는 것처럼 보이지만 내가 아는 모든 것 : 추측 컨데.
문제 :
내가 (로컬 호스트와 서버에 모두 아무 문제, - 또한 로그 아웃) 내 코너 응용 프로그램에 Auth0를 사용하여 로그인 할 수 있습니다. 로그인 후에 응용 프로그램은 제 제어 페이지로 리다이렉트합니다. 아무런 문제가 없습니다. 응용 프로그램 내에서 메뉴가 있고 경로가있는 다른 페이지가 있습니다.
로컬 호스트에서는 로그인 후에도 서버에서 가능합니다. 내 앱에서 페이지 간을 이동하지 마십시오. 모든 것이 잘못되어 방금 404 페이지가 생깁니다 (새로 고침을해도).
저는 또한 JQuery와 Materialize CSS를 사용하고 있습니다. JQuery는로드하지 않고 새로 고치면 효과가 작동합니다.
코드 :
app.routing.ts :
import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { AuthGuard } from './auth/auth.guard';
import { HomeComponent } from './components/home/home.component';
import { PainelComponent } from './components/painel/painel.component';
import { ReunioesComponent } from './components/reunioes/reunioes.component';
import { AssociadosComponent } from './components/associados/associados.component';
import { CalendarioComponent } from './components/calendario/calendario.component';
import { TesourariaComponent } from './components/tesouraria/tesouraria.component';
import { DocumentosComponent } from './components/documentos/documentos.component';
const appRoutes: Routes = [
{
path: '',
component: HomeComponent
},
{
path: 'painel',
component: PainelComponent,
canActivate: [AuthGuard]
},
{
path: 'associados',
component: AssociadosComponent,
canActivate: [AuthGuard]
},
{
path: 'calendario',
component: CalendarioComponent,
canActivate: [AuthGuard]
},
{
path: 'reunioes',
component: ReunioesComponent,
canActivate: [AuthGuard]
},
{
path: 'tesouraria',
component: TesourariaComponent,
canActivate: [AuthGuard]
},
{
path: 'documentos',
component: DocumentosComponent,
canActivate: [AuthGuard]
}
];
export const appRoutingProviders: any[] = [];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes, {useHash: false})
auth.service.ts :
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import { tokenNotExpired } from 'angular2-jwt';
declare var Auth0Lock: any;
@Injectable()
export class Auth {
lock = new Auth0Lock('SECRET', 'SECRET.auth0.com', {});
constructor(private router: Router) {
this.lock.on("authenticated", (authResult) => {
this.lock.getProfile(authResult.idToken, (err, profile) => {
if(err)
throw new Error(err)
localStorage.setItem('profile', JSON.stringify(profile));
localStorage.setItem('id_token', authResult.idToken);
this.router.navigate(['/painel'])
})
});
}
public login() {
this.lock.show()
}
public authenticated() {
return tokenNotExpired()
}
public logout() {
localStorage.removeItem('id_token');
localStorage.removeItem('profile')
}
}
sidenav.partial.html :
<ul id="slide-out" class="side-nav fixed">
<li><a href="/associados"><i class="material-icons">group</i>Associados</a></li>
<li><a href="/calendario"><i class="material-icons">event</i>Calendário</a></li>
<li><a href="/painel"><i class="material-icons">new_releases</i>Calendário Próximo</a></li>
<li><a href="/reunioes"><i class="material-icons">forum</i>Reuniões</a></li>
<li><a href="/tesouraria"><i class="material-icons">monetization_on</i>Tesouraria</a></li>
<li><a href="/documentos"><i class="material-icons">attach_file</i>Documentos</a></li>
<li><br></li>
<li class="show-on-med-and-down hide-on-large-only">
<a href="#!" (click)="auth.logout()"><i class="material-icons">close</i>Sair</a>
</li>
</ul>
감사합니다!
난 그냥 질문을 이해 내가 생각 아야 ... 당신이 실행중인 웹 서버? – n00dl3
제 3 자 사이트뿐만 아니라 질문 자체의 모든 관련 코드를 [mcve]에 입력하십시오. –
Mike McCaughan 경고를 보내 주셔서 감사합니다. 코드에서 같은 문제를 가진 사람들이 더 많이 도움이 될 것으로 기대합니다. 문제는 Jack Clancy가 해결했습니다. –