кэшируйте его в службе, например,
@Injectable()
export class UserService {
user: User;
getCurrentUser = (): Observable<User> =>
this.user ?
of(this.user) :
this.http.get<User>(`${this.endpoint}/loggedinuser`)
.pipe(tap(u => {
this.user = u;
}))
РЕДАКТИРОВАТЬ: Решение в комментарии @ AJT82 с использованием оператора share (), вероятно, чище и лучше. Однако хранение его в переменной имеет свои преимущества, проще выйти из системы (просто сделайте this.user = null), и может быть удобно, чтобы пользователь был доступен просто как свойство User вместо наблюдаемого.