- Re: 105 Add admin calls for MFA. Big thanks to @michaelschattgen.
- Re: 103 Add support for MFA signup and login flows. Huge thanks to @michaelschattgen for this implementation!
- Re: #102 Add ExchangeCodeForSession to StatelessClient. Thanks @alexbakker!
- Major: Change to targeting framework to
netstandard2.1
- Re: #99 Use a CSPRNG to generate the code verifier. Thanks @alexbakker!
- Re: #101 Ban user functionality. Thanks @celestebyte!
- Re: #98 Introduces
VerifyTokenHash
to support the PKCE flow for email signup. Thanks @alexbakker!
- Allow for scoped
SignOut
. Thanks @AndrewKahr!
- Various minor SSO fixes. Thanks @Rycko1!
- Implement
SignInWithSSO
. Huge thank you to @Rycko1!
- Add missing properties (
ProviderRefreshToken
andProviderToken
) toSession
object to reflect current state ofauth-js
- Re: #96 Set
ConfigureAwait(false)
the response to prevent deadlocking applications. Thanks @pur3extreme!
- Re: #135 Update nuget package name
gotrue-csharp
toSupabase.Gotrue
- Update dependencies
- Re: #89, Only add
access_token
to request body when it is explicitly declared.
- [MINOR] Re: #89 Update signature
for
SignInWithIdToken
which adds an optionalaccessToken
parameter, update doc comments, and callDestroySession
in method - Re: #88, Add
IsAnonymous
property toUser
- Re: #90 Implement
LinkIdentity
andUnlinkIdentity
- #88 Implement
signInAnonymously
from the JS client - Include additional 3rd party providers in constants.
- #83 Replaces JWTDecoder package with System.IdentityModel.Tokens.Jwt. Thanks @FantasyTeddy!
- #82 - Implements #82 - Creates a
GenerateLink
method on theAdminClient
that supportssignup
,invite
,magiclink
,recovery
,email_change_new
andemail_change_current
- #81 - Adds
InviteUserByEmailOptions
as a parameter to the Gotrue Admin Client
- #78 - Implements PKCE flow support
for
ResetPasswordForEmail
.
- Minor Breaking changes: #72 - Fixes
Calling
SetAuth
does not actually set Authorization Headers for subsequent requests by implementingSetSession
- Removes
RefreshToken(string refreshToken)
andSetAuth(string accessToken
in favor ofSetSession(string accessToken, string refreshToken)
- Makes
RefreshAccessToken
requireaccessToken
andrefreshToken
as parameters - overrides the authorization headers to use the supplied token - Migrates project internal times to use
DateTime.UtcNow
overDateTime.Now
.
- Removes
- #68 Changes Network Status to use the interface instead of client
- Minor #66 - Separates out Admin JWT functionality
into a
separate
AdminClient
- #67 - Adds shutdown method which terminates the background refresh threads.
- Movement of much of the documentation for methods out of their classes and into their interfaces.
- Language features locked to C#9
Thanks to @wiverson for this release!
- #63 - Refresh Thread bug fixes, adds offline support for stateful end user client. Huge thank you to @wiverson for this work!
- Uses new
Supabase.Core
assembly name.
- Update assembly to
Supabase.Gotrue
- #58 - Add support for the
reauthentication
endpoint which allows for secure password changes.
#57 Refactor exceptions, code cleanup, and move to delegate auth state changes
Huge thank you to @wiverson for his help on this refactor and release!
- Changes
- Exceptions have been simplified to a single
GotrueException
. AReason
field has been added toGotrueException
to clarify what happened. This should also be easier to manage as the Gotrue server API & messages evolve. - The session delegates for
Save
/Load
/Destroy
have been simplified to no longer requireasync
. - Console logging in a few places (most notable the background refresh thread) has been removed
in favor of a notification method. See
Client.AddDebugListener()
and the test cases for examples. This will allow you to implement your own logging strategy (write to temp file, console, user visible err console, etc). - The client now more reliably emits AuthState changes.
- There is now a single source of truth for headers in the stateful Client - the
Options
headers.
- Exceptions have been simplified to a single
- New feature:
- Added a
Settings
request to the stateless API only - you can now query the server instance to determine if it's got the settings you need. This might allow for things like a visual component in a tool to verify the GoTrue settings are working correctly, or tests that run differently depending on the server configuration.
- Added a
- Implementation notes:
- Test cases have been added to help ensure reliability of auth state change notifications and persistence.
- Persistence is now managed via the same notifications as auth state change
- #49 Implements
SignInWithOtp
for email and phone
- Implements
SignInWithIdToken
for Apple/Google signing from LW7. A HUGE thank you to @wiverson!
- [Minor] Implements PKCE auth flow. SignIn using a provider now returns an instance of
ProviderAuthState
rather than astring
.
- Supports adding
SignInOptions
(i.e.RedirectTo
) onOAuth Provider
SignIn requests.
- Fixes #44 - refresh timer should automatically
reattempt (interval of 5s) for HTTP exceptions - gracefully exits on invalid refresh and triggers
an
AuthState.Changed
event
- Makes
Session.CreatedAt
a publicly settable property, which should fix incorrect dates on retrievedSession
s.
- [Hotfix] Fixed
GetHeaders
not being passed to theAPI
instance
- Use
supabase-core
and implementIGettableHeaders
onIGotrueAPI
andIGotrueClient
Api
no longer requiresheaders
as a parameter.
ClientOptions
interface updated to support a genericTSession
to match theIGotrueClient
interface.
Migration from 2.x.x to 3.x.x:
Client
is no longer a Singleton - it should be initialized using its standard constructor.StatelessClient
is no longerStatic
- it should be initialized using a standard constructor.- Setting/Retrieving state on init has been disabled by default, you will need to call
client.RetrieveSessionAsync()
to retrieve state from yourSessionRetriever
function.
- #41 Add support
for
VerifyOTP(string email, string token)
- #39 Added GetUser method that supports a JWT. ( tahnks @AlexMeesters!)
- #37 Adds a
SetAuth
method to allow setting an arbitrary JWT token.
- #33 Refresh timer should be cancelled if the user logs out, CurrentSession object may be null in RefreshToken
- #30 Update usage of
redirectTo
to reflect gotrue-js usage and adaptGetSessionFromUrl
to gotrue's return format. (Thanks @RedChops)
- Changed
UpdateUserById
to require the more specificAdminUserAttributes
instead ofUserAttributes
( Thanks @AydinE)
- [Minor API Change] - Some
User
Model Attributes will now hydrate asnull
instead of as the objectdefaults
( i.e.ConfirmedAt
)
- Added providers for
LinkedIn
andNotion
- #23 Added
redirect_url
option for MagicLink sign in ( Thanks @MisterJimson)
- Minor:
SignUp
will return aSession
with a populatedUser
object on an unconfirmed signup.- Fixes #19
- Developers who were using a
null
check onSession.User
will need to adjust accordingly.
- Minor:
SignUp
signature now uses a classSignUpOptions
to includeData
andRedirectTo
options. ( Ref: supabase-community/supabase-csharp#16) - Fix #17 and #18
- Minor:
CreateUser
signature exchangesobject userdata
withAdminUserAttributes attributes
. - #16 Conforms
CreateUser
to theAdminUserAttributes
request format.
- #15 Added optional
metadata
parameter for userSignUp
functions. - Introduces a change into
User.AppMetadata
andUser.UserMetadata
where types are nowDictionary<string,object>
rather than justobject
.
- #14 Implemented
ListUsers
(paginate, sort, filter),GetUserById
,CreateUser
,UpdateById
( Thanks @TheOnlyBeardedBeast!)
- #12 Add a
AuthState.TokenRefreshed
trigger on Token Refresh (along with test).
- #7 Add a
StatelessClient
static class that enables API interactions through specifyingStatelessClientOptions
- Added tests for
StatelessClient
- Attempting to sign up a User that already exists throws a
BadRequestException
on the latest pull ofsupabase/gotrue
so the appropriate tests have been updated. - Internally, exceptions were moved to a
ExceptionHandler
class to be shared betweenClient
andStatelessClient