How to do custom auth (REST) ?
Hi, I need guidance for making dashboard in next js
I want to use custom auth, headlesss ui to style as per design requirement
I know refine using react query which is great
- I find refine AuthPage component has many built in component like LoginPage, ForgetPasswordPge, RegisterPage etc
- I honestly didn't get how those work
- i found tutorial about how to do login, resgister with auth provider.ts, but that is doing from scratch
So should i write from scratch or use already made componets ?
2 Replies
Hi @DasTapan. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
Based on the information provided in the extracts, Refine offers a flexible approach to authentication, allowing you to either utilize its built-in components for common authentication pages or to create your own custom authentication logic from scratch. Given your requirements for using custom authentication and a headless UI for styling, here's how you can approach this with Refine:
Using Built-in
<AuthPage />
Components
Refine provides <AuthPage />
integrations for popular UI libraries, including a headless option, which means you can easily handle authentication pages like login, register, update password, and forgot password, and speed up your development process. These integrations are available for:
- Headless
- Ant Design
- Material UI
- Chakra UI
- Mantine
For example, if you're using Ant Design, you can use the AntdAuthPage
component provided by @refinedev/antd
for creating an authentication page. This component allows you to specify the page type (e.g., login or register) and initial values for form inputs.
This approach leverages the existing components within Refine for authentication, which can significantly reduce development time.
Writing Custom Authentication Logic
If the built-in components do not meet your specific requirements, or you prefer to have more control over the authentication process, you can write your custom authentication logic. This involves setting up your authentication provider and integrating it with Refine. While the extracts do not provide a direct example of writing a custom authentication provider from scratch, they mention that Refine is designed to be flexible and customizable, allowing for integration with any REST or GraphQL backend service.
Given that Refine is backend agnostic and has out-of-the-box support for integrating external API services, you can create a custom authProvider.ts
that defines how authentication should be handled in your application. This provider would then be passed to the <Refine>
component in your application setup.
Decision
The decision to use built-in components or write from scratch depends on your specific needs and how much customization you require. If the built-in <AuthPage />
components meet your needs and you're using a supported UI library, they can provide a quick and easy way to handle authentication. However, if you need more control or have specific requirements not covered by the built-in components, writing your custom authentication logic would be the way to go.
For more detailed guidance on authentication with Refine, including how to set up custom authentication, you might find the official documentation and tutorials helpful. Unfortunately, the extracts do not include direct links to tutorials on writing custom authentication logic from scratch, so referring to the Refine documentation (https://refine.dev/docs/) would be a good next step.
----------------------
Note: you can ask me a follow up question by @ mentioning me again :speech_balloon:
----------------------<@920630946078818324> kapa.ai is still learning and improving, please let us know how it did by reacting below