2017-02-11 72 views
0

我使用auth0進行身份驗證。在我的角度應用程序中,我有一個AuthGuard來防止在使用auth0進行身份驗證時路由到角度應用程序。在認證過程中的URL看起來像這樣CanActivate路由在localhost上不在服務器上運行

 https://www.examplesite.com/#access_token=jlfdsfhWboAhvlRhbZt&expires_in=86400&id_token=aeryJ0eXAfsiOiJ..&token_type=Bearer&state=16d15855-0827-4189-bc34-26b981d578bb 

該應用程序包含以下途徑

export const ROUTES: Routes = [ 
{ path: '', loadChildren: './home/home.module#HomeModule', canActivate: [AuthGuard] }, 
{ path: '**', redirectTo: '/' }, 
]; 

這裏是AuthGuard:

@Injectable() 
export class AuthGuard implements CanActivate { 

constructor(private router: Router, private location: Location, private authService: AuthService) { } 

    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean { 

    if (route.fragment && route.fragment.startsWith('access_token')) { 
     return false; 
    } 

    return true; 
} 
} 

這適用於本地主機的罰款。 AccessToken路徑出現,消失後,應用程序加載成功。

但它在發佈的服務器上不起作用。它顯示accesstoken路徑,它消失了沒有加載的應用程序。

在控制檯中我得到這樣的警告 #=的access_token ... rfsdf & expires_in = 86400 & id_token = rfafsdf ...... & token_type =承載&狀態= 72e39d8b-7907-4fbb-88fb-1dd690622541:7 的鍵「」不被識別和忽略。

任何想法,爲什麼這項工作在本地主機,但不是在服務器上?

+0

瀏覽器控制檯中的任何錯誤? –

+0

Hi @GünterZöchbauer我收到一個警告。請參閱底部的更新答案。 – doorman

+0

很難從這裏知道localhost和服務器之間的區別是你部署它的地方。 –

回答