I am currently having difficulties using the already authenticated OAuth user and making calls to other APIs like the Google Calendar API to e.g. get the calendar entries. I have successfully authenticated the user using OAuth2 doing the following:
Client client = Client()
.setEndpoint('url')
.setProject('id');
Account account = Account(client);
await account.createOAuth2Session(
provider: OAuthProvider.google,
success: "http://localhost:8080/auth/oauth2/success",
failure: "http://localhost:8080/auth/oauth2/failure",
scopes: ['openid', 'https://www.googleapis.com/auth/calendar'],
);
I now have access to the current user and the session:
loggedInUser = await account.get();
currentSession = await account.getSession(sessionId: 'current');
I now want to use this authenticated OAuth client to make requests (and also handle refresh tokens) to other APIs. The Google Calendar API for example takes a modified http client that sends the Authorization header with every request. For example:
var googleCalendar = CalendarApi(<http.Client>);
calendarList = await googleCalendar.calendarList.list();
My question is: How can I get the already authorized httpClient from the Appwrite SDK so that i can use it to call other SDKs and also make common REST API calls using the http client itself? I see that the Client object has a method call() which uses the internal httpClient to do exactly what I describe (Using the underlying httpClient to make authorized requests).
I am currently doing the following as a workaround and it gets pretty messy handling the refresh and scopes for both flutter libraries (Using the OAuth Flutter Package: https://pub.dev/packages/oauth2):
currentOAuth2Client = oauth2.Client(
oauth2.Credentials(
currentSession.providerAccessToken,
...
),
);
Recommended threads
- CORS error only on tables db api After u...
I've recently updated my self hosted appwrite instance to the 1.8.0 and updated my frontend with the tables db apis but strangely, even if I'm able to log in, g...
- Multiple Set-Cookie headers collapsed on...
I’m deploying a Next.js 15 app to Appwrite → Deploy → Sites. In app/api/auth/login/route.ts I try to set 3 cookies. Variant A (manual headers): const headers ...
- session cookie not saving
it appears with my app hosted on Cloudflare worker pages, when i try to login it does not save the session cookie. however it saves in on localhost and no probl...