身份验证关闭时的默认用户(角度)

时间:2020-05-08 22:59:10

标签: angular http authentication

我有一个带有身份验证的项目,但现在已关闭。我需要将“管理员”用户设置为默认用户,并且在“身份验证”不起作用时不要从基础上对其进行检查。我知道应该检查一下并在get(): Observable<User> {}中设置一个默认用户,但是不知道如何。 非常感谢您的帮助! 这是我的代码:

authentication.server.ts

import { User } from '../shared/models/user';

@Injectable()
export class AuthenticationService {

  constructor(private http: HttpClient) { }
  get(): Observable<User> {
    return  this.http.get<User>('api/user')
  }
}

User.ts

import { UserRole } from '../user-role.enum';
export class Role {
  constructor(id: number, name: UserRole) {}
}

export class User {
  constructor(
    role: Role = null
}

User-role.enum.ts

export enum UserRole {
  Admin = 'Admin',
  Manager = 'Manager',
  User = 'User'
}

2 个答案:

答案 0 :(得分:0)

关于您的问题,首先,您的用户类必须指向UserRole枚举,如下所示:

    // make sure to put you directory and the name of the object
    import { UserRole } from './../enum/User-role.enum';

    export class User {
      constructor(
        id: number = null,
        firstName: string = '',
        lastName: string = '',
        email: string = '',
   //the type of role must be te name of object import between {UserRole}
        role: UserRole = UserRole.Admin
    }

第二秒,当您创建一些用户时,您可以像下面这样:

a)声明:

private userAdmin: User = new User();

b)用于某些方法:

userAdmin.role = UserRole.Admin

最后,请确保在导入类用户时正确指向您的枚举目录。

我想就这些。

答案 1 :(得分:0)

您的服务还可以,但是您已经在将使用该服务的组件上进行了此操作。

在组件上,首先创建一个用户以接收数据:

public returnedUser: User = new User(); // public if you want to use on template

然后,将此代码放在组件的ngInit中以使用该服务,并订阅该服务以从API接收信息。

this.AuthenticationService.get()
      .subscribe((data) => {
        data = this.returnedUser = data;
      });

最后,您将使您的用户进入对象returnUser。

我认为这就是您所需要的。