तो मैं एक आवेदन मैं बाहर काम पर कुछ इस तरह लागू करने के लिए किया था आपकी समस्या का एक सार नहीं है, यह मैं इसे कैसे संभाला है।
auth.service.ts
public isManager(): boolean {
let isManager = false;
let user = this.getUserToken();
//Stored my allowed groups in a config file, comma separated string
let allowedGroups = AuthenticationParams.filters.split(',');
let userGroups: any;
if (user !== null && user !== undefined) {
try {
let userGroups: any = user.role;
if (userGroups !== undefined && userGroups !== null && userGroups.length > 0) {
try {
userGroups.forEach((e: any) => {
if (allowedGroups.indexOf(e) > -1) {
isManager = true;
}
});
} catch (e) {
if (allowedGroups.indexOf(userGroups) > -1) {
isManager = true;
}
}
}
} catch (e) {
isManager = false;
}
}
return isManager;
}
public getUserToken(): any {
return localStorage.getItem('jwtTokenName');
}
मैं एक प्रमाणन गार्ड बनाया इस प्रकार है:
मैं एक प्रमाणन सेवा बनाया है, यह एक तरीका है कि जाँच की उपयोगकर्ता एक प्रबंधन भूमिका की थी है निहित:
guard.component.ts
import { Injectable, OnInit } from '@angular/core';
import { CanActivate, CanActivateChild } from '@angular/router';
import { Router } from '@angular/router';
import { AuthenticationService } from '../services/helper/security/auth.service';
@Injectable()
export class GuardComponent implements CanActivate {
constructor(private authenticationService: AuthenticationService, private _router: Router) {
}
canActivate() {
let isManager: boolean = this.authenticationService.isManager();
if (!isManager) {
this._router.navigate(['unauthorized']);
}
return isManager;
}
}
guard.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { GuardComponent } from './guard.component';
@NgModule({
declarations: [],
imports: [ CommonModule ],
exports: [],
providers: [ GuardComponent ],
})
export class GuardModule { }
मैं तो उस व्यवस्थापक अनुभाग के लिए नेविगेशन संभालती
एप्लिकेशन-routing.module.ts
{ path: 'management', component: AdminComponent, canActivate: [GuardComponent] }
मेरे मार्ग के लिए गार्ड का इस्तेमाल किया
मेरी नेविगेशन बार पर मैं केवल isManager
विधि को कॉल करता हूं और उसे एक चर पर संग्रहीत करता हूं और इसका उपयोग wheth निर्धारित करने के लिए करता है एर या प्रबंधन प्रबंधन को प्रदर्शित करने की आवश्यकता नहीं है या नहीं।
navbar.component.ts
public isManager: boolean = false;
ngOnInit(): void {
this.isManager = this.authenticationService.isManager();
}
navbar.component.html
<li [routerLinkActive]="['active']" *ngIf="isManager"><a [routerLink]="['management']">Management Portal</a></li>
मैं प्रत्येक विधि से कुछ डेटा को हटाने के लिए लिया है, लेकिन यह आप दे देंगे मूल विचार। उम्मीद है कि यह मदद करता है।
यह सवाल एसओ के क्यू/ए प्रारूप के लिए बहुत व्यापक है। किताबों के पूरे अध्याय हैं जो इन समस्याओं को हल करने के लिए कवर करते हैं। संक्षेप में: मार्ग, लेखक गार्ड, और मॉड्यूल। – axlj
@axlj हाँ मैं इसे समझता हूं।और तुम सही हो लेकिन आप कितने लोगों को जानते हैं कि अब पुस्तकें पढ़ना पसंद नहीं है। और अधिक लोग जिनके पास कुछ प्रश्नों के बारे में अच्छे विचार हैं, वे इसके बारे में कभी भी एक पुस्तक नहीं लिखेंगे। लेकिन हो सकता है कि अगर इन सभी लोगों को थोड़ा सा जवाब लिखना पड़े तो हमारे पास एक ऐसा स्थान होगा जहां लोग जो पुस्तक पढ़ना पसंद नहीं करते हैं, वे इस बारे में पढ़ सकते हैं। और अपने स्वयं के कुछ जोड़ें :) –
मैं आपको सुनता हूं, और मैं लंबी किताबें पढ़ने पर भी पसंद करता हूं। दुर्भाग्यवश, इस विशिष्ट प्रश्न का पूरा उत्तर केवल उस उपज को मिलेगा! – axlj