supabase / auth

A JWT based API for managing users and issuing JWT tokens
https://supabase.com/docs/guides/auth
MIT License
1.29k stars 325 forks source link

Adding error codes to ApiError #915

Open samirergaibi opened 2 years ago

samirergaibi commented 2 years ago

Feature request

Is your feature request related to a problem? Please describe.

I am building a website with supabase and the errors that is returned from supabase.auth only contains a general error code 400 and a message in english. This makes the different errors hard to distinguish from eachother.

Example: User tries to create an account but the user is already registered so the error returned from supabase.auth.signUp will be

{ 
  message: "User already registered",
  status: 400
}

Describe the solution you'd like

If the error included a specific error code mapped to particular error then providing a custom message would be easy.

Example:

{ 
  message: "User already registered",
  status: 400,
  errorCode: 1,
}

It would also be really awesome if the error codes was included in the documentation.

Describe alternatives you've considered

I've considered checking the string value returned in the error but if that would change in the future that would in turn break the application.

joeyTedeschi commented 2 years ago

+1 for this change, as at this time distinguishing between errors (and translating them to different languages), is completely contingent on parsing the message being returned (and if that message one day got changed, it would break whatever logic we've had to build on top of it)

salazarr-js commented 2 years ago

I realize that when a user signs up using an already in use email don't get any error messages, auth.signUp() just returns the user. i think in this case i wanna cath the error and tell the user that email is in use

a User already registered error message would be awesome

Andrewjeska commented 1 year ago

I want to alert the user if they need to check their email for the invite link, so error code would be help on signIn here would really help

aiji42 commented 1 year ago

I strongly support this request!
Error codes would facilitate the creation of dictionary data for translation and help with multilingualization.

I am developing an application for Japanese and currently there is no list of error messages, so I am having a hard time creating dictionary data.

florianwalther-private commented 1 year ago

+1 on this. How am I supposed to provide the user additional steps if their login attempt errors because their email hasn't been verified yet, but they can't find the verification code anymore?

silentworks commented 1 year ago

Related to supabase/supabase#12739

nickreese commented 1 year ago

Interested in this.

raheemja commented 1 year ago

Over a year later and this has not been addressed. I thought features like this were standard practice.

renansoares commented 1 year ago

no news on this? how people are handling authentication errors and internalization?

sharifbubuka commented 1 year ago

Thought this was industry standard and not something to implement upon request. Any developments on this?

otyang commented 1 year ago

This just made ditch supabase Auth for something else.

Its standard practise to return proper errors.

But till now over a year nothing has been done. There is no proper CURL documentation for us to implement the rest Auth into a SDK ourselves.

Even on the little examples, errors are not treated well. this is a no no for me,shows an unserious company in this aspect

dsebastien commented 1 year ago

Adding stable error keys to the returned JSON would be great (e.g., user.already.registered). That's clearer than abstract error codes ala Oracle.

And the ideal would be using the structure proposed by RFC 7807:

AdamEisfeld commented 1 year ago

+1 on this

joeldomke commented 1 year ago

I ran into the same issue and started collecting possible error messages by going through the GoTrue implementation.

I collect the errors for each endpoint in this Google Sheets doc. It's WIP so everything in this sheet is a little bit messy at the moment.

I also created a npm package that offers an error handler method for each function of GoTrue JS and therefore also Supabase JS.

caipicoder commented 1 year ago

Thx a lot Joel !

Le dim. 2 juil. 2023 à 15:24, Joel Domke @.***> a écrit :

I ran into the same issue and started collecting possible error messages by going through the GoTrue implementation.

I collect the errors for each endpoint in this Google Sheets doc https://docs.google.com/spreadsheets/d/1GRFrER_WrleH7XgrzM_wHnZNNTtdH1Bc0cGa5kvyOQM/edit?usp=sharing. It's WIP so everything in this sheet is a little bit messy at the moment.

I also created a npm package https://github.com/joeldomke/supabase-errors-jsthat offers an error handler method for each function of GoTrue JS and therefore also Supabase JS.

— Reply to this email directly, view it on GitHub https://github.com/supabase/gotrue/issues/915#issuecomment-1616660491, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABA5QT2GYVJ7FZHAZPVVMDXOFY7XANCNFSM6AAAAAAUGLI6EA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

drummerjolev commented 11 months ago

Running into the same issue – would love to have standardized error codes for auth (I'm using supabase.auth.signInWithOtp() specifically). Firebase has a doc about this: https://firebase.google.com/docs/reference/js/v8/firebase.auth.Error

CharleeWa commented 10 months ago

+1 on this

mwoss commented 9 months ago

Such improvement would be great for developer experience, +1 to this idea.

elglogins commented 9 months ago

Any progress on this would be great help! Is there a way we can contribute ourselves?

bielcarpi commented 6 months ago

+1, Firebase has these standard error codes and it really is essential if you want to, for example, translate the messages

mashwishi commented 6 months ago

+1, it's hard to use registration/signin manually with react native development using supabase lib, i am a js/ts library user but i would recommend having code status too...

I have already created feature request since Sept but no one have ever response to it

Ianduha13 commented 5 months ago

+1 on this, an error code it would be great to distinguish between errors and then we can make our own internationalization, but using a switch inside an effect its no option for a first class product, if we want to scale to millions we need that feature. By the way all the good vibes to the supabase team, you're making a incredible work, with my team recently started a new project integrating it with next.js 14 and we are amazed.

Soren-365 commented 5 months ago

Over a year later and this has not been addressed. I thought features like this were standard practice.

They have been busy with the unusable AI bs.

dannyraede commented 4 months ago

+1. Why is this not a standard already?

qaynam commented 4 months ago

It's been two years and still no update?

mashwishi commented 4 months ago

It's been two years and still no update?

SamiChab commented 3 months ago

This is an essential feature. +1 to this

262hz commented 3 months ago

Really, the lack of support for this is disappointing.

Being able to process errors in order to show users a customized (or localized) message is an essential feature.

haydn commented 3 months ago

@SamiChab @262hz Looks like the PR for this has been merged just recently:

https://github.com/supabase/gotrue/pull/1377

I believe it's in a release candidate at the moment.

mashwishi commented 3 months ago

It was already merged but i think its's for auth-js only is it different from supabase-js using supabase.auth?

is this only for auth-js ? and supabase-js not included?

            const response = await supabase.auth.signInWithPassword({
                email: email,
                password: password,
            })

image Version: "@supabase/supabase-js": "^2.41.1"