diff --git a/.forgejo/workflows/setup-ec2.yml b/.forgejo/workflows/setup-ec2.yml index 1159f2e5..8e5376ff 100644 --- a/.forgejo/workflows/setup-ec2.yml +++ b/.forgejo/workflows/setup-ec2.yml @@ -106,6 +106,14 @@ jobs: sed -i 's|^FACEBOOK_CLIENT_ID=.*|FACEBOOK_CLIENT_ID=2105308916859392|g' .env sed -i 's|^FACEBOOK_CLIENT_SECRET=.*|FACEBOOK_CLIENT_SECRET=79b51ed72514663f3629aa33610490f9|g' .env sed -i 's|^FACEBOOK_CLIENT_REDIRECT=.*|FACEBOOK_CLIENT_REDIRECT=\"https://socialmedia.tradhox.com/accounts/facebook/callback\"|g' .env + + # Configure Instagram OAuth + grep -q "^INSTAGRAM_CLIENT_ID=" .env || echo "INSTAGRAM_CLIENT_ID=" >> .env + grep -q "^INSTAGRAM_CLIENT_SECRET=" .env || echo "INSTAGRAM_CLIENT_SECRET=" >> .env + grep -q "^INSTAGRAM_CLIENT_REDIRECT=" .env || echo "INSTAGRAM_CLIENT_REDIRECT=" >> .env + sed -i 's|^INSTAGRAM_CLIENT_ID=.*|INSTAGRAM_CLIENT_ID=1857740662320894|g' .env + sed -i 's|^INSTAGRAM_CLIENT_SECRET=.*|INSTAGRAM_CLIENT_SECRET=b20e700f7795d4f6765f17bac93a938b|g' .env + sed -i 's|^INSTAGRAM_CLIENT_REDIRECT=.*|INSTAGRAM_CLIENT_REDIRECT=\"https://socialmedia.tradhox.com/accounts/instagram/callback\"|g' .env # Ensure web server owns the files after composer finishes writing caches sudo chown -R www-data:www-data storage bootstrap/cache diff --git a/app/Http/Controllers/Auth/InstagramController.php b/app/Http/Controllers/Auth/InstagramController.php index 5a6fdbea..23acd194 100644 --- a/app/Http/Controllers/Auth/InstagramController.php +++ b/app/Http/Controllers/Auth/InstagramController.php @@ -37,8 +37,11 @@ public function connect(Request $request): Response $this->rememberConnectSession($request, $workspace); + $redirectUrl = config('services.instagram.redirect') ?: route('app.social.instagram.callback'); + $url = Socialite::driver($this->driver) ->scopes($this->scopes) + ->redirectUrl($redirectUrl) ->redirect() ->getTargetUrl(); @@ -50,7 +53,11 @@ public function callback(Request $request): InertiaResponse $workspace = $this->connectWorkspace($request); try { - $socialUser = Socialite::driver($this->driver)->user(); + $redirectUrl = config('services.instagram.redirect') ?: route('app.social.instagram.callback'); + + $socialUser = Socialite::driver($this->driver) + ->redirectUrl($redirectUrl) + ->user(); // Instagram API with Instagram Login returns the user directly $avatarPath = $socialUser->getAvatar() ? uploadFromUrl($socialUser->getAvatar()) : null;