- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在我的 Angular 2 应用程序中使用 Auth0 身份验证。
在我运行本地主机的应用程序中一切正常,但是当我在服务器(在我的域上)上运行它时,我卡住了。
我的问题似乎出在路线上,但我所知道的一切都是:我猜。
问题:
我可以在我的 Angular 应用程序中使用 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>
谢谢!
最佳答案
我相信我在我的 ng2 应用程序中实现 Auth0 时遇到了与您类似的问题。它与您实现路由的方式有关。您将需要使用 HashLocationStrategy。
这需要将其添加到 app.module.ts
中的提供程序数组中:
{
提供:位置策略,
使用类:HashLocationStrategy
},
一旦你添加了它,你就可以按照下面的指南正确地使用 auth0 实现哈希路由(如果你使用的是较新版本的 ng2,请使用解决方法 #2):
How to use the HashLocationStrategy with the Auth0 Lock widget for user login
关于带有 Auth0 路由错误 404 的 Angular 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43234947/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!