- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在尝试构建程序时遇到了一些问题。我开始在我的界面上实现 Azure AD 身份验证,并且它在本地运行良好。但是,我在部署时看到一些错误。感谢您的帮助!
src/app/nav-bar/nav-bar.component.ts(25,46): error TS2339: Property 'getAccount' does not exist on type 'MsalService'.
src/app/nav-bar/nav-bar.component.ts(30,22): error TS2339: Property 'logout' does not exist on type 'MsalService'.
src/app/nav-bar/nav-bar.component.ts(34,42): error TS2339: Property 'getAllAccounts' does not exist on type 'MsalService'.
这是我的导航栏 component.ts 代码:
import { Component, OnInit, OnDestroy, Inject, Input, Output, EventEmitter } from '@angular/core';
import { MsalService } from '@azure/msal-angular';
import { Subject } from 'rxjs';
@Component({
selector: 'app-nav-bar',
templateUrl: './nav-bar.component.html',
styleUrls: ['./nav-bar.component.css']
})
export class NavBarComponent {
@Input() public pageName: string;
@Input() public loguser: string;
public loginUser: any;
@Input() public name: string;
constructor(private authService: MsalService) { }
public loginDisplay = false;
loggedUser() {
return this.loginUser = this.authService.getAccount();
}
public logout() { // Add log out function here
this.authService.logout('http://localhost:4200');
}
setLoginDisplay() {
this.loginDisplay = this.authService.getAllAccounts().length > 0;
}
}
我的(简化的)app.module.ts:
...
import {NavBarComponent} from './nav-bar/nav-bar.component';
import { MsalModule, MsalInterceptor, MsalService } from '@azure/msal-angular';
const isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;
const currentUrl = new URL(window.location.href)
const redirectUri = currentUrl.origin + currentUrl.pathname
@NgModule({
bootstrap: [AppComponent],
declarations: [
...
NavBarComponent,
],
imports: [
...
NgbModule.forRoot(),
RouterModule,
RouterModule.forRoot(appRoutes, {useHash: true}),
MsalModule.forRoot({
auth: {
clientId: 'xxxx', // Application (client) ID from the app registration
authority: 'xxxx', // The Azure cloud instance and the app's sign-in audience (tenant ID, common, organizations, or consumers)
redirectUri: redirectUri // This is your redirect URI
},
cache: {
cacheLocation: 'localStorage',
storeAuthStateInCookie: isIE,
}
})
],
providers: [
...
MsalService,
{
provide: HTTP_INTERCEPTORS,
useClass: MsalInterceptor,
multi: true
}
]
})
export class AppModule {
}
还有我的 package.json:
{
"name": "xxx",
"version": "1.23.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build --prod&& node versionManagement.js",
"build:local": "ng build --prod",
"test:w": "ng test --watch --browsers=Chrome --source-map=false",
"test": "ng test --source-map=false --code-coverage --source-map=false",
"lint": "ng lint",
"e2e": "ng e2e",
"compodoc": "./node_modules/.bin/compodoc -p src/tsconfig.app.json"
},
"private": true,
"dependencies": {
"@angular/animations": "^6.1.10",
"@angular/cdk": "^6.4.7",
"@angular/common": "^6.1.0",
"@angular/compiler": "^6.1.0",
"@angular/compiler-cli": "^6.1.0",
"@angular/core": "^6.1.0",
"@angular/forms": "^6.1.0",
"@angular/http": "^6.1.0",
"@angular/material": "^6.4.7",
"@angular/platform-browser": "^6.1.0",
"@angular/platform-browser-dynamic": "^6.1.0",
"@angular/platform-server": "^6.1.0",
"@angular/router": "^6.1.0",
"@azure/msal-angular": "^1.1.2",
"@handlebars/allow-prototype-access": "^1.0.5",
"@ng-bootstrap/ng-bootstrap": "2.0.0",
"@popperjs/core": "^2.10.2",
"angular-material-expansion-panel": "^0.7.2",
"bootstrap": "4.0.0",
"core-js": "2.6.12",
"crypto-js": "^4.1.1",
"font-awesome": "4.7.0",
"handlebars": "^4.7.7",
"jquery": "^3.6.0",
"popper.js": "^1.14.3",
"rxjs": "6.1.0",
"rxjs-compat": "6.2.2",
"zone.js": "0.8.26"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.6.0",
"@angular/cli": "~6.2.9",
"@compodoc/compodoc": "^1.1.18",
"@types/jasmine": "2.5.53",
"@types/jasminewd2": "2.0.2",
"@types/node": "6.0.60",
"codelyzer": "^4.2.1",
"jasmine-core": "2.99",
"jasmine-spec-reporter": "~4.2.1",
"karma-cli": "^2.0.0",
"karma": "~3.0.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-junit-reporter": "1.2.0",
"protractor": "5.1.2",
"ts-node": "3.2.0",
"tslint": "5.7.0",
"typescript": "2.7.2"
}
}
最佳答案
我遇到了同样的问题,这就是我所做的:
当我需要在某个组件中显示用户信息时,我会这样调用该信息:
this.authService.instance.getAllAccounts()[0]
例如,我有一个仪表板组件,在其中显示用户名:
ngOnInit(): void {
this.user = this.authService.instance.getAllAccounts()[0].name
}
我一直在尝试在用户登录后立即分配此值,因此我不需要每次组件需要该信息时都进行此调用,但我不断收到相同的属性未定义错误。
希望有帮助。
关于angular - 类型 'MsalService' 上不存在属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73474915/
SELECT *, `o_cheque_request.member_id`, `o_cheque_request.wallet_id` FROM `o_cheque_request`, `o_mem
根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要**SELECT count(*)**呢? 无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如
我试图找出一个文件是否存在,如果存在,验证css样式是否已经存在,如果不存在,将它们写在文件末尾... 我已经完成了这一切,但分 3 个步骤: 该文件是否存在? FileInfo fi= new Fi
我们正在开发即时消息传递应用程序,并且需要在用户的化身上用绿点显示用户 friend 的“状态”。 “状态”远远超出了“my_app_is_opened_and_on_focus”,这意味着(我猜可能
模式 Movie(title, year, director, budget, earnings) Actor(stagename, realname, birthyear) ActedIn(stag
我有一个正在尝试创建的 MySQL 触发器,但无法获得正确的语法。 触发器应该遍历一组关键字并将其与插入数据库的新帖子的标题进行匹配。如果找到匹配项,它应该将新帖子分配给该存储桶并更新存储桶的关键字集
我有 3 个表......用户、更新和碰撞。 我想向发出 api 请求的用户返回最新订单的 feed 更新,并提供显示 feed 中每个状态所需的所有数据。我还需要包括更新是否已被发出 api 请求的
我正在尝试呈现一个带有 UIView 的 UIViewController。 以下是我在 viewDidLoad 方法中尝试的代码。 //create the view controller UIVi
我正在努力弄清楚如何在不对 mysql 进行两次调用的情况下从一个表中检查两件事。 我有一个 Members 表。我想测试MemberID 列中是否存在某个值,以及PhoneNumber 列中是否存在
以下代码给出了一个没有 Do Compile 错误的循环: Loop Sheets("Snap").Rows(1).AutoFilter Field:=5, Criteria1:=List
是否可以通过检查“dig”的输出来检查域名的存在? 在绑定(bind)源中,我发现了这些常量: 0 DNS_R_NOEROR 1 DNS_R_FORMERR 2 DNS_R_SERVFAIL 3 DN
Controller 有问题 我在 Windows 上使用服务器,一切正常,但在互联网上我试图访问页面 social_apartament/beauty_life/并且找不到该页面,代码错误 404这
/** This is struct S. */ struct S(T) { static if(isFloatingPoint!T) { /// This version works
JVM 类型删除如何帮助 Clojure?没有它,Clojure 还能存在吗?如果 JVM 有具体化的类型会发生什么?也就是说,Clojure 将如何改变? 最佳答案 Clojure 根本不会有太大变
许多论文等提到对“system()”的调用是不安全且不可移植的。我不反对他们的论点。 不过,我注意到许多 Unix 实用程序都有一个等效的 C 库。如果没有,源可用于各种这些工具。 虽然许多论文和此类
在我的 Node js 应用程序中,我有一个用户登录 api。上面我在服务器端代码中创建了一个名为 customerid 的变量。现在,当用户身份验证成功时。我将他的 userid 值存储在我的 cu
我有一个工作资源管理器组,由 Ubuntu 14.04 虚拟机、网络接口(interface)、公共(public) IP 地址和存储帐户组成。我已经从这组资源中创建了一个模板。 当我尝试部署这组资源
我有一个函数createminor4(arr,锦标赛)它基本上将arr分成4组,每组8人,然后将它们一次交换到tourney 1组。从那里它插入四个{},其中有 4 个带有空数组的键。 我已经在 Ch
我有一个图表,其中有两个图例。我需要更改其中一个图例的点的大小。 我需要更改图例中“市场类型”的项目符号大小。我使用示例 here但不适用于我的图表。 我的代码如下: k <- ggplot(subs
我有 fiddle here展示我正在尝试做的事情。 我有一个动态生成的表,因此列可以按用户选择的任何顺序显示。因此,我尝试获取两个特定 header 的索引,以便可以将 CSS 类添加到这两列以供稍
我是一名优秀的程序员,十分优秀!