Getting the underlying OAuth Http Client for usage with e.g. Google Calendar Api
- 0
- Flutter
- Auth
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
- Deep Linking & Password reset
I am using react native with expo. I want to implement deep link with the url recived via email. So when clicked the link it opens my app. I havent ever used de...
- Current User is Not authorized
recreating same Thread
- Error: User (role: guests) missing scope...
I want to send a verification code to the user and the given phone number and check it and create a session right after the user entered the secret. For me that...