Hi devs! I need some help regarding SSR in Angular 17.
Previously without SSR the auth interceptor appends the bearer token taken from LocalStorage, now with SSR in Angular 17 looks like something is wrong and it is not working at all, API says that it is unable to retreive user ID, that's because the interceptor is not sending anything.
export class AuthInterceptorService implements HttpInterceptor {
constructor(
private readonly localService: LocalStorageService,
@Inject(PLATFORM_ID) private platformId: Object
) {}
intercept(
httpRequest: HttpRequest<any>,
next: HttpHandler
): Observable<HttpEvent<any>> {
if (isPlatformBrowser(this.platformId)) {
const token = this.localService.getToken();
if (token !== null) {
httpRequest = httpRequest.clone({
setHeaders: {
Authorization: `Bearer ${token}`,
},
});
}
}
return next.handle(httpRequest);
}
}
And my server.ts looks like this
server.get('*', (req, res, next) => {
const { protocol, originalUrl, baseUrl, headers } = req;
commonEngine
.render({
bootstrap: AppServerModule,
documentFilePath: indexHtml,
url: `${protocol}://${headers.host}${originalUrl}`,
publicPath: browserDistFolder,
providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }],
})
.then((html) => res.send(html))
.catch((err) => next(err));
});
return server;
}
I have no idea how to handle this, can somebody help me out?