Closed eric-walter closed 1 year ago
In the NewMicrosoft365SignInListener.php:18, instead of:
$user = User::create([
'firstname' => $event->token['info']['givenName'],
'lastname' => $event->token['info']['surname'],
'email' => $event->token['info']['mail'],
'password' => '',
]);
$token->user_id = $user->id;
$token->save();
Auth::login($user);
It should be:
$user = User::firstOrNew([
'email' => $event->token['info']['mail'],
], [
'firstname' => $event->token['info']['givenName'],
'lastname' => $event->token['info']['surname'],
'email' => $event->token['info']['mail'],
'password' => '',
]);
$token->user_id = $user->id;
$token->save();
Auth::login($user);
I've just released https://github.com/dcblogdev/laravel-microsoft-graph/releases/tag/v3.2.0. the only changes required are updating the listener to the following:
<?php
namespace App\Listeners;
use App\Models\User;
use Dcblogdev\MsGraph\MsGraph;
use Illuminate\Support\Facades\Auth;
class NewMicrosoft365SignInListener
{
public function handle($event)
{
$user = User::firstOrCreate([
'email' => $event->token['info']['mail'],
], [
'name' => $event->token['info']['displayName'],
'email' => $event->token['info']['mail'] ?? $event->token['info']['userPrincipalName'],
'password' => '',
]);
(new MsGraph())->storeToken(
$event->token['accessToken'],
$event->token['refreshToken'],
$event->token['expires'],
$user->id,
$user->email
);
Auth::login($user);
}
}
Also updated the docs to make them more clear.
Hi, First of all, thanks fr this package, it's very usefull :) When a user log in for the first time, a row is inserted in the users table, but if this user log out then try to log in again, there is an "duplicate entry" error.