added socialite provider for the user

This commit is contained in:
Milos Holba
2021-12-20 15:15:05 +01:00
parent f37c4f62b7
commit 22ae148a22
13 changed files with 280 additions and 88 deletions
@@ -37,8 +37,9 @@ class CreateNewUserAction extends Controller
// Create user
$user = User::create([
'password' => ! $socialite_auth ? bcrypt($data['password']) : null,
'email' => $data['email'],
'password' => ! $socialite_auth ? bcrypt($data['password']) : null,
'oauth_provider' => $socialite_auth ? $data->oauth_provider : null,
'email' => $data['email'],
]);
// Mark as verified if verification is disabled
@@ -22,9 +22,10 @@ class CheckAccountController extends Controller
}
return [
'name' => $user->settings->name,
'avatar' => $user->settings->avatar,
'verified' => $user->email_verified_at ? 1 : 0,
'name' => $user->settings->name,
'avatar' => $user->settings->avatar,
'verified' => $user->email_verified_at ? 1 : 0,
'oauth_provider' => $user->password ? null : $user->oauth_provider,
];
}
}
@@ -21,7 +21,7 @@ class SocialiteAuthenticationController extends Controller
return response()->json([
'url' => $url
]);
], 200);
}
public function callback($provider)
@@ -30,7 +30,7 @@ class SocialiteAuthenticationController extends Controller
$provider_user = Socialite::driver($provider)->stateless()->user();
// Check if user exist already
$user = User::whereEmail($provider_user->email)->first();
$user = User::whereEmail($provider_user->email)->first();
if($user) {
// Login User
@@ -38,7 +38,10 @@ class SocialiteAuthenticationController extends Controller
} else {
// Add user avatar from socialite
$provider_user->avatar = get_socialite_avatar($provider_user->avatar);
$provider_user->avatar = store_socialite_avatar($provider_user->avatar);
// Add provider name
$provider_user->oauth_provider = $provider;
// Create User
($this->createNewUser)($provider_user);
+1
View File
@@ -54,6 +54,7 @@ class User extends Authenticatable implements MustVerifyEmail
protected $fillable = [
'email',
'password',
'oauth_provider',
];
protected $hidden = [
+35 -32
View File
@@ -344,14 +344,7 @@ if (! function_exists('store_avatar')) {
$intervention = Image::make($image->getRealPath());
// Generate avatar sizes
collect(config('vuefilemanager.avatar_sizes'))
->each(function ($size) use ($intervention, $avatar_name) {
// fit thumbnail
$intervention->fit($size['size'], $size['size'])->stream();
// Store thumbnail to disk
Storage::put("avatars/{$size['name']}-{$avatar_name}", $intervention);
});
generate_avatar_thumbnails($intervention, $avatar_name);
// Return path to image
return $avatar_name;
@@ -1017,30 +1010,40 @@ if(! function_exists('get_socialite_avatar')) {
/**
* Get socialite avatar create and store his thumbnails
*/
function get_socialite_avatar($avatar)
{
$image = file_get_contents($avatar);
// Generate avatar name
$avatar_name = Str::uuid() . '.jpg';
// Create intervention image
$intervention = Image::make($image);
// Generate avatar sizes
collect(config('vuefilemanager.avatar_sizes'))
->each(function ($size) use ($intervention, $avatar_name) {
// fit thumbnail
$intervention->fit($size['size'], $size['size'])->stream();
// Store thumbnail to disk
Storage::put("avatars/{$size['name']}-{$avatar_name}", $intervention);
});
// Return path to image
return $avatar_name;
}
function store_socialite_avatar($avatar)
{
$image = file_get_contents($avatar);
// Generate avatar name
$avatar_name = Str::uuid() . '.jpg';
// Create intervention image
$intervention = Image::make($image);
// Generate avatar sizes
generate_avatar_thumbnails($intervention, $avatar_name);
// Return name of image
return $avatar_name;
}
}
if(! function_exists('generate_avatar_thumbnails')) {
/**
* Create avatar thumbnails
*/
function generate_avatar_thumbnails($intervention, $avatar_name)
{
collect(config('vuefilemanager.avatar_sizes'))
->each(function ($size) use ($intervention, $avatar_name) {
// fit thumbnail
$intervention->fit($size['size'], $size['size'])->stream();
// Store thumbnail to disk
Storage::put("avatars/{$size['name']}-{$avatar_name}", $intervention);
});
}
}
}