Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular CanActivate路由在本地主机而不是服务器上工作_Angular_Auth0 - Fatal编程技术网

Angular CanActivate路由在本地主机而不是服务器上工作

Angular CanActivate路由在本地主机而不是服务器上工作,angular,auth0,Angular,Auth0,我使用的是身份验证。在我的angular应用程序中,我有一个AuthGuard,用于防止在使用auth0进行身份验证期间路由到angular应用程序。在身份验证过程中,url如下所示 https://www.examplesite.com/#access_token=jlfdsfhWboAhvlRhbZt&expires_in=86400&id_token=aeryJ0eXAfsiOiJ..&token_type=Bearer&state=16d1585

我使用的是身份验证。在我的angular应用程序中,我有一个AuthGuard,用于防止在使用auth0进行身份验证期间路由到angular应用程序。在身份验证过程中,url如下所示

     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;
}
}
@Injectable()
导出类AuthGuard实现了CanActivate{
构造函数(专用路由器:路由器,专用位置:位置,专用authService:authService){}
canActivate(路由:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察的布尔值{
if(route.fragment&&route.fragment.startsWith('access_token')){
返回false;
}
返回true;
}
}
这在本地主机上运行良好。AccessToken路径出现,消失后,应用程序将成功加载

但它在已发布的服务器上不起作用。它显示accesstoken路径,并在未加载应用程序时消失

在控制台中,我收到了这个警告 #访问令牌=rfsdf…&到期令牌=86400&id令牌=rfafsdf…&令牌类型=承载者和状态=72e39d8b-7907-4fbb-88fb-1dd690622541:7 无法识别和忽略密钥“”


知道为什么这在本地主机上有效而在服务器上无效吗?

问题在于Auth0和处理哈希。

浏览器控制台中有错误吗?嗨@GünterZöchbauer,我收到一条警告。请在底部查看更新的答案。从这里很难判断本地主机和服务器之间的区别是在哪里部署的。请首先尝试构建应用程序并使用本地iis,然后检查错误是否继续。其次,尝试更改主机文件中的localhost,并检查问题是否仍然存在