问题描述
我尝试在Angular中编写AuthGuard,但出现以下错误:
类型'typeof AuthServiceService'不能分配给类型'(request ?: HttpRequest)=>字符串|诺言'。 类型'typeof AuthServiceService'不提供签名'(request ?: HttpRequest):字符串
的匹配项
这是我的auth-service.service.ts:
@Injectable({
providedIn: 'root'
})
export class AuthServiceService {
constructor(
private http:HttpClient,public jwtHelper: JwtHelperService) { }
login(data):Observable<any>{
return this.http.post(baseUrl + 'ApplicationUser/login',data)
}
handleError(error: HttpErrorResponse) {
return throwError(error);
}
public isAuthenticated(): boolean {
const token = localStorage.getItem('token');
return !this.jwtHelper.isTokenExpired(token);
}
}
这是我的AuthGuard服务:
import { AuthServiceService } from 'src/services/auth/auth/auth-service.service';
import { Injectable } from '@angular/core';
import { CanActivate,Router } from '@angular/router';
@Injectable({
providedIn: 'root'
})
export class AuthGuardService implements CanActivate {
constructor(public auth: AuthServiceService,public router: Router) { }
canActivate(): boolean {
if (!this.auth.isAuthenticated()) {
this.router.navigate(['']);
return false;
}
return true;
}
}
我在tokenGetter的这一行收到此错误:
const JWT_Module_Options: JwtModuleOptions = {
config: {
tokenGetter: AuthServiceService
}
};
有人可以帮助我,来自AuthService的响应应该是什么样的?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)