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
- Anonymous Sessions using Node SDKs
I am attempting to use anonymous sessions with the Node SDK but I have simply no idea how to persist the session to a cookie, pass it to the session client, etc...
- Auth working for emulator but not for ph...
hey guys i'm using appwrite for expo react native it is working perfectly for emulator but does not working for physical devices can u explain any one and it is...
- Invalid Credentials to Log in
Hello team, I’m facing a login issue with appwrite this morning. I can’t login anymore. I haven’t changed or pushed anything since the last time I was able to l...