You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中仅展示当前登录HR发布职位的实现方案问询

实现HR仅查看自身发布职位的方案

推荐方案:后端过滤(安全优先)

后端直接从JWT Token中解析当前HR的ID,只返回匹配HrId的职位数据,避免前端获取所有敏感数据。

1. 修改.NET后端API

更新接口,从请求的Token中提取当前HR的UserId,并过滤职位列表:

[HttpGet("GetMyJobPostings")]
public IEnumerable<JobPosting> GetMyJobPostings()
{
    // 从Token的Claim中获取当前HR的UserId
    var userIdClaim = User.Claims.FirstOrDefault(c => c.Type == "UserId");
    if (userIdClaim == null || !int.TryParse(userIdClaim.Value, out int hrId))
    {
        return new List<JobPosting>();
    }
    // 只返回当前HR发布的职位
    return Context.JobPosting.Where(jp => jp.HrId == hrId).ToList();
}

2. 修改Angular端API服务

替换原有的getAllJobPostings方法,调用新的后端接口:

getMyJobPostings(): Observable<JobPosting[]> {
  return this.http.get<JobPosting[]>(`${this.basicURL}Main/GetMyJobPostings`);
}

3. 在Angular组件中调用

加载当前用户信息后,请求并渲染匹配的职位:

jobPostings: JobPosting[] = [];

ngOnInit(): void {
  const currentUser = this.userService.loadCurrentUser();
  if (currentUser) {
    this.jobPostingService.getMyJobPostings().subscribe(postings => {
      this.jobPostings = postings;
    });
  }
}

备选方案:前端过滤(仅测试/非敏感场景)

如果临时需要前端处理,可在获取所有职位后,通过当前HR的ID过滤数组:

jobPostings: JobPosting[] = [];

ngOnInit(): void {
  const currentUser = this.userService.loadCurrentUser();
  if (currentUser) {
    this.jobPostingService.getAllJobPostings().subscribe(allPostings => {
      // 过滤出当前HR发布的职位
      this.jobPostings = allPostings.filter(posting => posting.hrId === currentUser.UserId);
    });
  }
}

注意:前端过滤会将所有职位数据返回给客户端,存在数据泄露风险,仅建议在非生产环境或数据无敏感信息时使用。

内容的提问来源于stack exchange,提问作者ADeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:37:12