# Authentication Support API Platform Admin delegates the authentication support to React Admin. Refer to [the chapter dedicated to authentication in the React Admin documentation](https://marmelab.com/react-admin/Authentication.html) for more information. In short, you have to tweak the data provider and the API documentation parser like this: ```typescript // components/admin/Admin.tsx import Head from "next/head"; import { useState } from "react"; import { Navigate, Route } from "react-router-dom"; import { CustomRoutes } from "react-admin"; import { fetchHydra as baseFetchHydra, HydraAdmin, hydraDataProvider as baseHydraDataProvider, useIntrospection, } from "@api-platform/admin"; import { parseHydraDocumentation } from "@api-platform/api-doc-parser"; import authProvider from "utils/authProvider"; import { ENTRYPOINT } from "config/entrypoint"; const getHeaders = () => localStorage.getItem("token") ? { Authorization: `Bearer ${localStorage.getItem("token")}`, } : {}; const fetchHydra = (url, options = {}) => baseFetchHydra(url, { ...options, headers: getHeaders, }); const RedirectToLogin = () => { const introspect = useIntrospection(); if (localStorage.getItem("token")) { introspect(); return <>; } return ; }; const apiDocumentationParser = (setRedirectToLogin) => async () => { try { setRedirectToLogin(false); return await parseHydraDocumentation(ENTRYPOINT, { headers: getHeaders }); } catch (result) { const { api, response, status } = result; if (status !== 401 || !response) { throw result; } // Prevent infinite loop if the token is expired localStorage.removeItem("token"); setRedirectToLogin(true); return { api, response, status, }; } }; const dataProvider = (setRedirectToLogin) => baseHydraDataProvider({ entrypoint: ENTRYPOINT, httpClient: fetchHydra, apiDocumentationParser: apiDocumentationParser(setRedirectToLogin), }); const Admin = () => { const [redirectToLogin, setRedirectToLogin] = useState(false); return ( <> API Platform Admin {redirectToLogin ? } /> : null} ); } export default Admin; ``` For the implementation of the auth provider, you can find a working example in the [API Platform's demo application](https://github.com/api-platform/demo/blob/main/pwa/utils/authProvider.tsx).