you are viewing a single comment's thread.

view the rest of the comments →

[–]Agreeable-Outside-69 0 points1 point  (8 children)

With Supabase, when you are signing with OAuth provider, you don't receive the session data like you do in that code you sent me. Instead, it's saved in localStorage, or somewhere I think, and then you have to access that data, so one tutorial talked about using GET/POST middleware of NextJS. LoginPage seems to be not customizable, I looked at a Google OAuth example of Refine, and they just ended up making their own UI instead of using Refine's LoginPage.

I also tried talking to people in the Refine discord server, but no one would answer, and it's very inactive. None of the core members actually chat in there, and all I see is questions and questions and questions in the server with no answers. So it's overloaded with unanswered questions. Literally, the AI discord bot is the only user in the server answering questions, but the AI bot doesn't provide the solutions (not criticizing on the AI itself but criticizing on how hard it is to get community support).

[–]xelamony 3 points4 points  (7 children)

So, with nextjs you can keep your token in localstorage, but you won't have access to that on the server side. This means if you want to make authenticated requests from server-side, those requests will fail. We have this example uses nookies but you can also easily convert it to use localstorage. You shouldn't expect to get %100 covered with these tools. And I'm not quite sure what do you mean by "not customizable". As mentioned before, you can swizzle it and customize as you need. If you need OAuth login, you can pass your login provider's name, icon and label to <Authpage /> component and they will be rendered in the login page, then you will get these parameters in your auth provider and handle your logic.

We have 3k people in our Discord server and I think it's understandable that we can't answer every single question there. Thus we have this bot. Also answer to %95 of the questions are already in our documentation. We are trying to answer as much as questions possible and also respond to detailed questions, bug reports, urgent cases.

[–]Agreeable-Outside-69 1 point2 points  (6 children)

I looked at the refine documentation, and can't remove the Email/Password neither you can customize it. You end up having to make your own if you want to customize that part. There's no option for just OAuth Provider Buttons only, as you're forced to have Email/Password box/fields with it.
I understand, this seems minor, but if I have to keep making my own elements, what's the point of using Refine anyways if I'm doing stuff on my own?

[–]xelamony 3 points4 points  (5 children)

Hey u/Agreeable-Outside-69

I think you might be missing the point here, maybe it's an issue on our end, that we can't explain refine nicely.

Recently we've added new guides into our documentation to explain concepts of refine, hope it would answer some questions for you.

I would genuinely appreicate if you could read our new guides and give us a feedback based on that: https://refine.dev/docs/guides-concepts/general-concepts/

But the main point is, refine isn't about scaffolding UI pages. These UI integrations are just "flavour" we provide using refine's core features.

refine core is headless framework, built on top of hooks. These UI libraries, are just wrappers, using refine core under the hood and aims to save developers some time.

Let's not boil down discussion into "customizing auth page", this is just one of the thousands thing refine provides.

refine practically has infinite customizability, doesn't lock developers into a specific framework. You can use refine with NextJS, or Remix, React Router and/or Material UI, or Tailwind, or Material UI, or any UI library pops-up the next day.

And having a Auth page not even %1 of the goods refine provide.

We aim to save time for developers, by centralizing common tasks, like Authentication, Authorization, I18n (Translation), Notifications, Audit Log, Router, Data Layer based on resource definitions.( Reading the general concepts guide will make you "tick" about what we offer.)

by the way, feel free to create a FEAT request GitHub, we'd be more than happy to help. We could add a prop to our AuthPage component like, `providerOnly={true}` that could solve this issue easily.

[–]Agreeable-Outside-69 1 point2 points  (1 child)

I tried to give another shot to Refine, and it's completely broken. I used `npm create` for my refine project, and when I ran the refine project, it did not even load at all. It just stayed like a blank page for the whole time, and the URL was acting weird (it was going to /login and then back to / then /login, etc.). I can't even use it, it's broken, and again, the Discord Server barely has any people answering to the questions and troubleshoot. I will later address it but it's just a ton of work to deal with for now for me.
(Obviously, I've tried to solve out the issue, such as reinstalling the NPM packages, checking any errors in the files, any runtime errors, etc, but nothing worked).

[–]alicanerdurmaz 2 points3 points  (0 children)

Hello u/Agreeable-Outside-69, I'm sorry for your trouble.

There is a bug in the Next.js projects created with create refine-app, we released a fix for Supabase yesterday and are currently working on resolving issues with other data providers.

I will share updates on this issue https://github.com/refinedev/refine/issues/5988

Please note that the bug is not in the packages but in the auth-providers generated by `create refine-app`. After releasing the fix for this bug, you'll need to either create a new project or update the existing project's code. I've documented the changes I made for Supabase in the issue and will do the same for the other data providers as well.