Skip to content

Commit

Permalink
Merge pull request #3 from biigle/v2
Browse files Browse the repository at this point in the history
V2
  • Loading branch information
mzur committed Apr 2, 2024
2 parents 7eed8b8 + 103d80b commit 1341a86
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 4 deletions.
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -15,7 +15,7 @@
}
],
"require": {
"socialiteproviders/lifesciencelogin": "^5.0"
"socialiteproviders/lifesciencelogin": "^6.0"
},
"autoload": {
"psr-4": {
Expand Down
11 changes: 10 additions & 1 deletion src/Http/Controllers/LSLoginController.php
Expand Up @@ -7,6 +7,7 @@
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Laravel\Socialite\Facades\Socialite;
use Laravel\Socialite\Two\InvalidStateException;

class LSLoginController extends Controller
{
Expand All @@ -28,7 +29,15 @@ public function redirect()
*/
public function callback(Request $request)
{
$user = Socialite::driver('lifesciencelogin')->user();
try {
$user = Socialite::driver('lifesciencelogin')->user();
} catch (InvalidStateException $e) {
$route = $request->user() ? 'settings-authentication' : 'login';

return redirect()
->route($route)
->withErrors(['lslogin-id' => 'There was an unexpected error. Please try again.']);
}

$lslId = LsloginId::with('user')->find($user->id);

Expand Down
26 changes: 24 additions & 2 deletions tests/Http/Controllers/LSLoginControllerTest.php
Expand Up @@ -5,17 +5,17 @@
use Biigle\Modules\AuthLSLogin\LsloginId;
use Biigle\User;
use Laravel\Socialite\Facades\Socialite;
use Laravel\Socialite\Two\InvalidStateException;
use Laravel\Socialite\Two\User as SocialiteUser;
use Session;
use TestCase;


class LSLoginControllerTest extends TestCase
{
public function testRedirect()
{
$this->get('auth/lslogin/redirect')
->assertRedirectContains('https://proxy.aai.lifescience-ri.eu');
->assertRedirectContains('https://login.aai.lifescience-ri.eu');
}

public function testCallbackNewUser()
Expand Down Expand Up @@ -93,4 +93,26 @@ public function testCallbackConnectAlreadyConnected()
$this->get('auth/lslogin/callback')->assertRedirectToRoute('settings-authentication');
$this->assertAuthenticatedAs($id->user);
}

public function testInvalidStateExceptionDuringLogin()
{
config(['biigle.user_registration' => true]);
Socialite::shouldReceive('driver->user')->andThrow(InvalidStateException::class);

$this->get('auth/lslogin/callback')
->assertInvalid(['lslogin-id'])
->assertRedirectToRoute('login');
}

public function testInvalidStateExceptionDuringConnect()
{
config(['biigle.user_registration' => true]);
Socialite::shouldReceive('driver->user')->andThrow(InvalidStateException::class);

$user = User::factory()->create();
$this->be($user);
$this->get('auth/lslogin/callback')
->assertInvalid(['lslogin-id'])
->assertRedirectToRoute('settings-authentication');
}
}

0 comments on commit 1341a86

Please sign in to comment.