I tried the C# SDK and was getting the error below:
Error Unauthorized: {"message":"app.6619a48bdcd3d3361fbc@service.cloud.appwrite.io (role: applications) missing scope (public)","code":401,"type":"general_unauthorized_scope","version":"0.12.148"}
I realized that SDK on Github is not being updated. So I switched to REST API. Same error.
Initialization:
builder.Services.AddHttpClient<IAuthService, AuthService>(client => { client.BaseAddress = new Uri("https://cloud.appwrite.io/v1"); client.DefaultRequestHeaders.Add("X-Appwrite-Project", "********************"); client.DefaultRequestHeaders.Add("X-Appwrite-Key", "*************************************"); });
My method:
public async Task<dynamic> AuthenticateUserAsync(string email, string password) { var requestBody = new { email, password };
var jsonRequestBody = JsonSerializer.Serialize(requestBody);
var httpContent = new StringContent(jsonRequestBody, Encoding.UTF8, "application/json");
var response = await _httpClient.PostAsync("/v1/account/sessions/email", httpContent);
if (response.IsSuccessStatusCode)
{
var jsonResponse = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<dynamic>(jsonResponse);
}
else
{
// Handle the error
System.Diagnostics.Debug.WriteLine($"Error {response.StatusCode}: {await response.Content.ReadAsStringAsync()}");
return null;
}
}
I have made 0 progress, if I can get this fixed, will go back to Supabase.
I got it to work finally. Apparently you dont include the API key in the initialization. It works if I comment that out.
Recommended threads
- Second Time Error sign in with Google us...
My issue is when I am first time sign with Google using appwrite,next js and successfully login and delete my logged user account permanently and after again s...
- Next.js 14 + tRPC + Appwrite: Session co...
I'm building a Next.js 14 application with tRPC and Appwrite for authentication as a way to further my learning, so I may have aspects of this wrong. This is a ...
- How to check a Token's time remaining un...
When a Token is created, it's payload also contain "exp" property with the time it will expire. I need to know if should I create a new token, so - how to chec...