mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2025-12-18 14:34:23 +01:00
Enhanced OAuth 2.0 Implementation with Dynamic Redirect URIs and Popup Authentication (#5566)
* Set custom parameter redirect URI * Red border * Blue border
This commit is contained in:
@@ -7,24 +7,61 @@ class AuthService {
|
||||
clientId:
|
||||
"387936576242-iejdacrjljds7hf99q0p6eqna8rju3sb.apps.googleusercontent.com");
|
||||
|
||||
// Sign in with Google using redirect
|
||||
// Sign in with Google using popup
|
||||
Future<UserCredential?> signInWithGoogle() async {
|
||||
try {
|
||||
final GoogleAuthProvider googleProvider = GoogleAuthProvider();
|
||||
await _auth.signInWithRedirect(googleProvider);
|
||||
return await _auth.getRedirectResult();
|
||||
|
||||
// Step 1: Detect the current hostname
|
||||
String hostname = Uri.base.host;
|
||||
|
||||
// Step 2: Determine the redirect URI
|
||||
String redirectUri;
|
||||
if (hostname.contains('github.dev')) {
|
||||
// If running in Github Codespaces
|
||||
redirectUri = Uri.base.toString();
|
||||
} else {
|
||||
// For local development or other environments, set accordingly
|
||||
redirectUri = 'http://localhost:8000'; // Example for local development
|
||||
}
|
||||
|
||||
// Step 3: Update OAuth 2.0 provider configuration dynamically
|
||||
googleProvider.setCustomParameters({'redirect_uri': redirectUri});
|
||||
|
||||
// Use signInWithPopup instead of signInWithRedirect
|
||||
final result = await _auth.signInWithPopup(googleProvider);
|
||||
print(result);
|
||||
return result;
|
||||
} catch (e) {
|
||||
print("Error during Google Sign-In: $e");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
// Sign in with GitHub using redirect
|
||||
// Sign in with GitHub using popup
|
||||
Future<UserCredential?> signInWithGitHub() async {
|
||||
try {
|
||||
final GithubAuthProvider githubProvider = GithubAuthProvider();
|
||||
await _auth.signInWithRedirect(githubProvider);
|
||||
return await _auth.getRedirectResult();
|
||||
|
||||
// Step 1: Detect the current hostname
|
||||
String hostname = Uri.base.host;
|
||||
|
||||
// Step 2: Determine the redirect URI
|
||||
String redirectUri;
|
||||
if (hostname.contains('github.dev')) {
|
||||
// If running in Github Codespaces
|
||||
redirectUri = Uri.base.toString();
|
||||
} else {
|
||||
// For local development or other environments, set accordingly
|
||||
redirectUri = 'http://localhost:8000'; // Example for local development
|
||||
}
|
||||
|
||||
// Step 3: Update OAuth 2.0 provider configuration dynamically
|
||||
githubProvider.setCustomParameters({'redirect_uri': redirectUri});
|
||||
|
||||
// Use signInWithPopup instead of signInWithRedirect
|
||||
final result = await _auth.signInWithPopup(githubProvider);
|
||||
return result;
|
||||
} catch (e) {
|
||||
print("Error during GitHub Sign-In: $e");
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user