Здесь я разработал свой api rest в symfony, теперь я разрабатываю мобильное приложение с ionic, и я закончил с фазой входа и регистрации. Теперь я ищу способ доступа к данным подключенного пользователя, чтобы бытьвозможность отображать его данные на моей html-странице, зная, что я использую URL моего API-интерфейса и работаю в localhost. Я создал службу аутентификации и свою страницу, на которую пользователь будет перенаправлен в соответствии с типом пользователя.
В моем случае я хотел бы получить данные о пациенте, который только что вошел в систему, и я хотел быразместить свою информацию на своей html-странице.
Служба аутентификации
export class AuthenticationService {
constructor(private httpService: HttpService,
private router: Router, ) {
login(postData: any): Observable<any> {
return this.httpService.post('login', postData);
}
signup(postData: any): Observable<any> {
return this.httpService.post('signup', postData);
}
logout() {
localStorage.removeItem('id_token');
this.router.navigate(['/home']);
}
}
Служба Http
export class HttpService {
private API_URL = 'http://127.0.0.1:8000/';
constructor(private http: HttpClient) { }
apiBase = this.API_URL + 'api/login';
post( serviceName: any, data: any) {
const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
const options = { headers, withCredintials: false };
return this.http.post(this.apiBase, JSON.stringify(data), options);
} }
Панель инструментов пациента ts
export class PatientDashboardPage implements OnInit {
data: any;
bords: any;
public authUser: any;
constructor(private menu: MenuController, private router: Router, private auth:
AuthenticationService) {
this.bords = [
{
title: 'Tableau de bord',
icon: 'desktop',
path: '/patient-dashboard/bord',
},
{
title: 'Mes rendez-vous',
icon: 'calendar',
path: '/booking',
},
{
title: 'Mon Profil',
icon: 'clipboard',
path: '/profil',
},
{
title: 'Feedback',
icon: 'chatboxes',
path: '/feedback',
}
];
}
ngOnInit() {
}
showDetail(arg: any) {
this.router.navigateByUrl(arg);
}
}
Панель инструментов пациента html
<ion-header>
<ion-toolbar>
<ion-buttons slot="start">
<ion-menu-button></ion-menu-button>
</ion-buttons>
<ion-title style="color: darkgreen">Welcome to Doctix </ion-title>
</ion-toolbar>
</ion-header>
<ion-content fullscreen >
<ion-list style="padding-top: 0.5em">
<ion-item button *ngFor="let bord of bords"
(click)="showDetail(bord.path)"style="padding-top: 4em">
<ion-icon style="color: darkgreen" slot="start" name="{{bord.icon}}" ></ion-icon>
<ion-label>
<h3>{{bord.title}}</h3>
</ion-label>
</ion-item>
</ion-list>
</ion-content>
Спасибо