
Hey, having problems with the intended way to do SSR login...
I'm looking at this as a reference: https://appwrite.io/docs/products/auth/server-side-rendering#creating-sessions however I am using a .net back end (front end also, but thats not relevant here).
I create a singleton for my Admin Client in DI, and create the session client as a transient which will be instantiated each time as so (I've removed the project and key's, and this is a test project so no need for hiding them in secrets right now):
var adminClient = new Appwrite.Client()
.SetEndpoint("")
.SetProject("")
.SetKey("");
builder.Services.AddKeyedSingleton("admin", adminClient);
builder.Services.AddKeyedTransient("session", (provider, key) => new Appwrite.Client().SetEndpoint("").SetProject(""));
I've created an API endpoint, which currently isn't setting cookies as I haven't gotten that far, but thats to be done, as follows:
public static async Task<IResult> Login(LoginModel login, [FromKeyedServices("admin")] Appwrite.Client client)
{
var accountClient = new Account(client);
var result = await accountClient.CreateEmailPasswordSession(login.Email, login.Password);
return TypedResults.Ok();
}
This appears to match the docs I referenced above - using the admin client not the session client, and calling create email password session.
Everything works at first, but then any action I try and make after this call with the admin client will fail with the following error:
Appwrite.AppwriteException: API key and session used in the same request. Use either `setSession` or `setKey`. Learn about which authentication method to use in the SSR docs: https://appwrite.io/docs/products/auth/server-side-rendering
I never call setSession on the admin client, but it appears to be having its session set by calling CreateEmailPasswordSession?
Is this meant to be the case?
I could solve it be injecting the AdminClient everywhere as Transient rather than a singleton, but that's not the real solution I don't feel...
Recommended threads
- Issue with github oauth in firefox brows...
Hello Guys i have setup appwrite auth (Email Password, Google and Github). All auth methods works fine on the chrome based browsers but it has a strange issue w...
- Email template for OTP session
The default template shown by cloud interface does not match the sent template. Also whenever I change a character on the default template, the variable matcher...
- Unable to select my region when signing ...
I am from India and trying to use appwrite for the first time, I was creating my first project when it asked me to select my region, Frankfurt is selected on it...
