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 的键“”不被识别和忽略。
任何想法,为什么这项工作在本地主机,但不是在服务器上?
浏览器控制台中的任何错误? –
Hi @GünterZöchbauer我收到一个警告。请参阅底部的更新答案。 – doorman
很难从这里知道localhost和服务器之间的区别是你部署它的地方。 –