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

View File

@@ -18,7 +18,7 @@ class CreateUsersTable extends Migration
$table->enum('role', ['admin', 'user'])->default('user');
$table->string('email')->unique()->index();
$table->timestamp('email_verified_at')->nullable();
$table->string('password')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
$table->charset = 'utf8mb4';

View File

@@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddOauthProviderToUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('oauth_provider')->nullable();
$table->string('password')->nullable()->change();
$table->charset = 'utf8mb4';
$table->collation = 'utf8mb4_unicode_ci';
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('users', function (Blueprint $table) {
//
});
}
}

View File

@@ -69,7 +69,7 @@
"/chunks/settings.js": "/chunks/settings.js?id=ccc5f90e9d662e5eadda",
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=7aef028d0a71284058fd",
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=0f501d0b00bcd6f221f4",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=a1d89bc9ac55db4e12ba",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=2f6a91171aa1a5fed1e0",
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=c5c29b78bd0a4594c74d",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=2a52974c78e61fded592",
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=90af249e45b1d57212db",
@@ -81,8 +81,8 @@
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=8a37309a849e9206f624",
"/chunks/shared/files.js": "/chunks/shared/files.js?id=3cfbad4ec2ea510cd318",
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=eedeb944475f314ee4cd",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=d2f9e52b4b526a8e273d",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=ceae3b013e80718b7c34",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=fd89b3a0b13969e06a63",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=a0717b4f3add50c50101",
"/chunks/status-check.js": "/chunks/status-check.js?id=f88c5b7d72ec9997075c",
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=cc4a1b99e8548d502e99",
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=f0e719b0b952bee121b8",
@@ -105,16 +105,144 @@
"/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~b505e62a.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~b505e62a.js?id=8163e0eab55c50f8afb8",
"/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~40ccbae3.js": "/vendors~chunks/admin~chunks/files~chunks/my-shared-items~chunks/platform~chunks/recent-uploads~chunk~40ccbae3.js?id=37ce1e1ab9968c100712",
"/vendors~chunks/admin~chunks/platform~chunks/settings~chunks/shared.js": "/vendors~chunks/admin~chunks/platform~chunks/settings~chunks/shared.js?id=a0fa80db175709ba340a",
"/chunks/sign-in.a5677bdc62efa362e777.hot-update.js": "/chunks/sign-in.a5677bdc62efa362e777.hot-update.js",
"/chunks/sign-up.a5677bdc62efa362e777.hot-update.js": "/chunks/sign-up.a5677bdc62efa362e777.hot-update.js",
"/chunks/sign-in.c60195416bfb5d672b3e.hot-update.js": "/chunks/sign-in.c60195416bfb5d672b3e.hot-update.js",
"/chunks/sign-up.c60195416bfb5d672b3e.hot-update.js": "/chunks/sign-up.c60195416bfb5d672b3e.hot-update.js",
"/chunks/sign-in.c4eb750a006d9f8a2cf7.hot-update.js": "/chunks/sign-in.c4eb750a006d9f8a2cf7.hot-update.js",
"/chunks/sign-up.c4eb750a006d9f8a2cf7.hot-update.js": "/chunks/sign-up.c4eb750a006d9f8a2cf7.hot-update.js",
"/chunks/email-verified.c680ec669f8f5c96843b.hot-update.js": "/chunks/email-verified.c680ec669f8f5c96843b.hot-update.js",
"/chunks/email-verified.992fd9a423096efa5e80.hot-update.js": "/chunks/email-verified.992fd9a423096efa5e80.hot-update.js",
"/chunks/email-verified.474a722d5b48b372f9c2.hot-update.js": "/chunks/email-verified.474a722d5b48b372f9c2.hot-update.js",
"/chunks/email-verified.45577197a849383f1a51.hot-update.js": "/chunks/email-verified.45577197a849383f1a51.hot-update.js",
"/chunks/email-verified.c8260460097fbc91f8f1.hot-update.js": "/chunks/email-verified.c8260460097fbc91f8f1.hot-update.js",
"/chunks/settings-password.5bf4baeca8d09d7194c4.hot-update.js": "/chunks/settings-password.5bf4baeca8d09d7194c4.hot-update.js"
"/chunks/sign-in.686f5271f28dd1ecc9c2.hot-update.js": "/chunks/sign-in.686f5271f28dd1ecc9c2.hot-update.js",
"/chunks/sign-in.cdfe822ae6724edcf9e3.hot-update.js": "/chunks/sign-in.cdfe822ae6724edcf9e3.hot-update.js",
"/js/main.5cb5355495c10738ca8d.hot-update.js": "/js/main.5cb5355495c10738ca8d.hot-update.js",
"/chunks/sign-in.46ad6570c02c9ad807ab.hot-update.js": "/chunks/sign-in.46ad6570c02c9ad807ab.hot-update.js",
"/chunks/sign-up.46ad6570c02c9ad807ab.hot-update.js": "/chunks/sign-up.46ad6570c02c9ad807ab.hot-update.js",
"/chunks/sign-in.c999fd1d09198d23e62b.hot-update.js": "/chunks/sign-in.c999fd1d09198d23e62b.hot-update.js",
"/chunks/sign-up.c999fd1d09198d23e62b.hot-update.js": "/chunks/sign-up.c999fd1d09198d23e62b.hot-update.js",
"/chunks/sign-in.b972ce0f729b847f7bc4.hot-update.js": "/chunks/sign-in.b972ce0f729b847f7bc4.hot-update.js",
"/chunks/sign-up.b972ce0f729b847f7bc4.hot-update.js": "/chunks/sign-up.b972ce0f729b847f7bc4.hot-update.js",
"/js/main.a2eda18296319b73ec52.hot-update.js": "/js/main.a2eda18296319b73ec52.hot-update.js",
"/js/main.edf927c4b7a75875c511.hot-update.js": "/js/main.edf927c4b7a75875c511.hot-update.js",
"/chunks/sign-in.a05fe9e09d07157775ef.hot-update.js": "/chunks/sign-in.a05fe9e09d07157775ef.hot-update.js",
"/chunks/sign-up.a05fe9e09d07157775ef.hot-update.js": "/chunks/sign-up.a05fe9e09d07157775ef.hot-update.js",
"/js/main.e8f7948a8836d2795dd6.hot-update.js": "/js/main.e8f7948a8836d2795dd6.hot-update.js",
"/js/main.35184536e4191267525a.hot-update.js": "/js/main.35184536e4191267525a.hot-update.js",
"/chunks/sign-in.bf179c57ed77cfd5da44.hot-update.js": "/chunks/sign-in.bf179c57ed77cfd5da44.hot-update.js",
"/chunks/sign-in.bb16f09259e9aea817e3.hot-update.js": "/chunks/sign-in.bb16f09259e9aea817e3.hot-update.js",
"/chunks/settings-password.bab5141190de8ecabdac.hot-update.js": "/chunks/settings-password.bab5141190de8ecabdac.hot-update.js",
"/chunks/sign-in.8b45f65282712a1e5884.hot-update.js": "/chunks/sign-in.8b45f65282712a1e5884.hot-update.js",
"/chunks/sign-in.7ccdabef3110808f8754.hot-update.js": "/chunks/sign-in.7ccdabef3110808f8754.hot-update.js",
"/chunks/sign-up.7ccdabef3110808f8754.hot-update.js": "/chunks/sign-up.7ccdabef3110808f8754.hot-update.js",
"/chunks/sign-in.d1564b7cfee1039ceb42.hot-update.js": "/chunks/sign-in.d1564b7cfee1039ceb42.hot-update.js",
"/chunks/sign-up.d1564b7cfee1039ceb42.hot-update.js": "/chunks/sign-up.d1564b7cfee1039ceb42.hot-update.js",
"/chunks/sign-in.5ee4c4787853253b33f3.hot-update.js": "/chunks/sign-in.5ee4c4787853253b33f3.hot-update.js",
"/chunks/sign-up.5ee4c4787853253b33f3.hot-update.js": "/chunks/sign-up.5ee4c4787853253b33f3.hot-update.js",
"/chunks/sign-in.f499dc74e28d7116fea8.hot-update.js": "/chunks/sign-in.f499dc74e28d7116fea8.hot-update.js",
"/chunks/sign-up.f499dc74e28d7116fea8.hot-update.js": "/chunks/sign-up.f499dc74e28d7116fea8.hot-update.js",
"/chunks/sign-in.a34a85adefefaa873eef.hot-update.js": "/chunks/sign-in.a34a85adefefaa873eef.hot-update.js",
"/chunks/sign-up.a34a85adefefaa873eef.hot-update.js": "/chunks/sign-up.a34a85adefefaa873eef.hot-update.js",
"/chunks/sign-in.820320fa0ba98230fe7b.hot-update.js": "/chunks/sign-in.820320fa0ba98230fe7b.hot-update.js",
"/chunks/sign-up.820320fa0ba98230fe7b.hot-update.js": "/chunks/sign-up.820320fa0ba98230fe7b.hot-update.js",
"/chunks/sign-in.f5d0013f3f3c99fca12c.hot-update.js": "/chunks/sign-in.f5d0013f3f3c99fca12c.hot-update.js",
"/chunks/sign-up.f5d0013f3f3c99fca12c.hot-update.js": "/chunks/sign-up.f5d0013f3f3c99fca12c.hot-update.js",
"/chunks/sign-in.b6c80d84078412edd374.hot-update.js": "/chunks/sign-in.b6c80d84078412edd374.hot-update.js",
"/chunks/sign-up.b6c80d84078412edd374.hot-update.js": "/chunks/sign-up.b6c80d84078412edd374.hot-update.js",
"/chunks/sign-in.9163782f5e18b6da229d.hot-update.js": "/chunks/sign-in.9163782f5e18b6da229d.hot-update.js",
"/chunks/sign-up.9163782f5e18b6da229d.hot-update.js": "/chunks/sign-up.9163782f5e18b6da229d.hot-update.js",
"/chunks/sign-in.fcc79d7b9b6a35f4b5c2.hot-update.js": "/chunks/sign-in.fcc79d7b9b6a35f4b5c2.hot-update.js",
"/chunks/sign-up.fcc79d7b9b6a35f4b5c2.hot-update.js": "/chunks/sign-up.fcc79d7b9b6a35f4b5c2.hot-update.js",
"/chunks/sign-in.778c9f41da36c8104dfa.hot-update.js": "/chunks/sign-in.778c9f41da36c8104dfa.hot-update.js",
"/chunks/sign-up.778c9f41da36c8104dfa.hot-update.js": "/chunks/sign-up.778c9f41da36c8104dfa.hot-update.js",
"/chunks/sign-in.b0498fd284b764a9a4bd.hot-update.js": "/chunks/sign-in.b0498fd284b764a9a4bd.hot-update.js",
"/chunks/sign-up.b0498fd284b764a9a4bd.hot-update.js": "/chunks/sign-up.b0498fd284b764a9a4bd.hot-update.js",
"/chunks/sign-in.740bb61ad011254d1df7.hot-update.js": "/chunks/sign-in.740bb61ad011254d1df7.hot-update.js",
"/chunks/sign-up.740bb61ad011254d1df7.hot-update.js": "/chunks/sign-up.740bb61ad011254d1df7.hot-update.js",
"/chunks/sign-in.aef235bdf1ebd19862bd.hot-update.js": "/chunks/sign-in.aef235bdf1ebd19862bd.hot-update.js",
"/chunks/sign-up.aef235bdf1ebd19862bd.hot-update.js": "/chunks/sign-up.aef235bdf1ebd19862bd.hot-update.js",
"/chunks/sign-in.d92d280b84dc5a290cd4.hot-update.js": "/chunks/sign-in.d92d280b84dc5a290cd4.hot-update.js",
"/chunks/sign-up.d92d280b84dc5a290cd4.hot-update.js": "/chunks/sign-up.d92d280b84dc5a290cd4.hot-update.js",
"/chunks/sign-in.cad995b5badc722eeff8.hot-update.js": "/chunks/sign-in.cad995b5badc722eeff8.hot-update.js",
"/chunks/sign-up.cad995b5badc722eeff8.hot-update.js": "/chunks/sign-up.cad995b5badc722eeff8.hot-update.js",
"/chunks/sign-in.fd9150cd6b883731b7ca.hot-update.js": "/chunks/sign-in.fd9150cd6b883731b7ca.hot-update.js",
"/chunks/sign-up.fd9150cd6b883731b7ca.hot-update.js": "/chunks/sign-up.fd9150cd6b883731b7ca.hot-update.js",
"/chunks/sign-in.02a39e19fea0db373771.hot-update.js": "/chunks/sign-in.02a39e19fea0db373771.hot-update.js",
"/chunks/sign-up.02a39e19fea0db373771.hot-update.js": "/chunks/sign-up.02a39e19fea0db373771.hot-update.js",
"/chunks/sign-in.17b81fa1a4fff37406d3.hot-update.js": "/chunks/sign-in.17b81fa1a4fff37406d3.hot-update.js",
"/chunks/sign-up.17b81fa1a4fff37406d3.hot-update.js": "/chunks/sign-up.17b81fa1a4fff37406d3.hot-update.js",
"/chunks/sign-in.b4636df7427d1ab80635.hot-update.js": "/chunks/sign-in.b4636df7427d1ab80635.hot-update.js",
"/chunks/sign-up.b4636df7427d1ab80635.hot-update.js": "/chunks/sign-up.b4636df7427d1ab80635.hot-update.js",
"/chunks/sign-in.78b984ba68f0146935b7.hot-update.js": "/chunks/sign-in.78b984ba68f0146935b7.hot-update.js",
"/chunks/sign-up.78b984ba68f0146935b7.hot-update.js": "/chunks/sign-up.78b984ba68f0146935b7.hot-update.js",
"/chunks/sign-in.cdcd2b64c5d92c3c9c36.hot-update.js": "/chunks/sign-in.cdcd2b64c5d92c3c9c36.hot-update.js",
"/chunks/sign-up.cdcd2b64c5d92c3c9c36.hot-update.js": "/chunks/sign-up.cdcd2b64c5d92c3c9c36.hot-update.js",
"/chunks/sign-in.e15984fb0e910e52d8b7.hot-update.js": "/chunks/sign-in.e15984fb0e910e52d8b7.hot-update.js",
"/chunks/sign-up.e15984fb0e910e52d8b7.hot-update.js": "/chunks/sign-up.e15984fb0e910e52d8b7.hot-update.js",
"/chunks/sign-in.880f4fcfc3b148080f3d.hot-update.js": "/chunks/sign-in.880f4fcfc3b148080f3d.hot-update.js",
"/chunks/sign-up.880f4fcfc3b148080f3d.hot-update.js": "/chunks/sign-up.880f4fcfc3b148080f3d.hot-update.js",
"/chunks/sign-in.26a097fa2eafa0eb99b0.hot-update.js": "/chunks/sign-in.26a097fa2eafa0eb99b0.hot-update.js",
"/chunks/sign-up.26a097fa2eafa0eb99b0.hot-update.js": "/chunks/sign-up.26a097fa2eafa0eb99b0.hot-update.js",
"/chunks/sign-in.fe5c69141b666649c6e1.hot-update.js": "/chunks/sign-in.fe5c69141b666649c6e1.hot-update.js",
"/chunks/sign-up.fe5c69141b666649c6e1.hot-update.js": "/chunks/sign-up.fe5c69141b666649c6e1.hot-update.js",
"/chunks/sign-in.25d52addfc88e7ed197a.hot-update.js": "/chunks/sign-in.25d52addfc88e7ed197a.hot-update.js",
"/chunks/sign-up.25d52addfc88e7ed197a.hot-update.js": "/chunks/sign-up.25d52addfc88e7ed197a.hot-update.js",
"/chunks/sign-in.62fd8f84e461fb075dfc.hot-update.js": "/chunks/sign-in.62fd8f84e461fb075dfc.hot-update.js",
"/chunks/sign-up.62fd8f84e461fb075dfc.hot-update.js": "/chunks/sign-up.62fd8f84e461fb075dfc.hot-update.js",
"/chunks/sign-in.7e29c4c44035fe08a6e1.hot-update.js": "/chunks/sign-in.7e29c4c44035fe08a6e1.hot-update.js",
"/chunks/sign-up.7e29c4c44035fe08a6e1.hot-update.js": "/chunks/sign-up.7e29c4c44035fe08a6e1.hot-update.js",
"/chunks/sign-in.c7f4fe321413cfd24c6e.hot-update.js": "/chunks/sign-in.c7f4fe321413cfd24c6e.hot-update.js",
"/chunks/sign-up.c7f4fe321413cfd24c6e.hot-update.js": "/chunks/sign-up.c7f4fe321413cfd24c6e.hot-update.js",
"/chunks/sign-in.a330ad40bb653ac5959b.hot-update.js": "/chunks/sign-in.a330ad40bb653ac5959b.hot-update.js",
"/chunks/sign-up.a330ad40bb653ac5959b.hot-update.js": "/chunks/sign-up.a330ad40bb653ac5959b.hot-update.js",
"/chunks/sign-in.f16548c25ccb88f0599d.hot-update.js": "/chunks/sign-in.f16548c25ccb88f0599d.hot-update.js",
"/chunks/sign-up.f16548c25ccb88f0599d.hot-update.js": "/chunks/sign-up.f16548c25ccb88f0599d.hot-update.js",
"/chunks/sign-in.f5387fae52547910c250.hot-update.js": "/chunks/sign-in.f5387fae52547910c250.hot-update.js",
"/chunks/sign-up.f5387fae52547910c250.hot-update.js": "/chunks/sign-up.f5387fae52547910c250.hot-update.js",
"/chunks/sign-in.ece0dc9ae818e42504dc.hot-update.js": "/chunks/sign-in.ece0dc9ae818e42504dc.hot-update.js",
"/chunks/sign-up.ece0dc9ae818e42504dc.hot-update.js": "/chunks/sign-up.ece0dc9ae818e42504dc.hot-update.js",
"/chunks/sign-in.1cde69cd726f9c17920c.hot-update.js": "/chunks/sign-in.1cde69cd726f9c17920c.hot-update.js",
"/chunks/sign-up.1cde69cd726f9c17920c.hot-update.js": "/chunks/sign-up.1cde69cd726f9c17920c.hot-update.js",
"/chunks/sign-in.5c675f04a65a1effc52b.hot-update.js": "/chunks/sign-in.5c675f04a65a1effc52b.hot-update.js",
"/chunks/sign-up.5c675f04a65a1effc52b.hot-update.js": "/chunks/sign-up.5c675f04a65a1effc52b.hot-update.js",
"/chunks/sign-in.7819e61ee85f34c7accd.hot-update.js": "/chunks/sign-in.7819e61ee85f34c7accd.hot-update.js",
"/chunks/sign-up.7819e61ee85f34c7accd.hot-update.js": "/chunks/sign-up.7819e61ee85f34c7accd.hot-update.js",
"/chunks/sign-in.97050f512d1cb54050e5.hot-update.js": "/chunks/sign-in.97050f512d1cb54050e5.hot-update.js",
"/chunks/sign-up.97050f512d1cb54050e5.hot-update.js": "/chunks/sign-up.97050f512d1cb54050e5.hot-update.js",
"/chunks/sign-in.cefd2f49aae773f41398.hot-update.js": "/chunks/sign-in.cefd2f49aae773f41398.hot-update.js",
"/chunks/sign-up.cefd2f49aae773f41398.hot-update.js": "/chunks/sign-up.cefd2f49aae773f41398.hot-update.js",
"/chunks/sign-in.36c70c3c1bbc61ca68dd.hot-update.js": "/chunks/sign-in.36c70c3c1bbc61ca68dd.hot-update.js",
"/chunks/sign-up.36c70c3c1bbc61ca68dd.hot-update.js": "/chunks/sign-up.36c70c3c1bbc61ca68dd.hot-update.js",
"/chunks/sign-in.efff2e0e5171f34c2f8f.hot-update.js": "/chunks/sign-in.efff2e0e5171f34c2f8f.hot-update.js",
"/chunks/sign-up.efff2e0e5171f34c2f8f.hot-update.js": "/chunks/sign-up.efff2e0e5171f34c2f8f.hot-update.js",
"/chunks/sign-in.98a761b78ab42ff14941.hot-update.js": "/chunks/sign-in.98a761b78ab42ff14941.hot-update.js",
"/chunks/sign-up.98a761b78ab42ff14941.hot-update.js": "/chunks/sign-up.98a761b78ab42ff14941.hot-update.js",
"/chunks/sign-in.7aef6f465384f32ba7c9.hot-update.js": "/chunks/sign-in.7aef6f465384f32ba7c9.hot-update.js",
"/chunks/sign-up.7aef6f465384f32ba7c9.hot-update.js": "/chunks/sign-up.7aef6f465384f32ba7c9.hot-update.js",
"/chunks/sign-in.4b0a3f836f56e339df29.hot-update.js": "/chunks/sign-in.4b0a3f836f56e339df29.hot-update.js",
"/chunks/sign-up.4b0a3f836f56e339df29.hot-update.js": "/chunks/sign-up.4b0a3f836f56e339df29.hot-update.js",
"/chunks/sign-in.52163406e6127290ecc2.hot-update.js": "/chunks/sign-in.52163406e6127290ecc2.hot-update.js",
"/chunks/sign-up.52163406e6127290ecc2.hot-update.js": "/chunks/sign-up.52163406e6127290ecc2.hot-update.js",
"/chunks/sign-in.3df06c0e0acf386727ad.hot-update.js": "/chunks/sign-in.3df06c0e0acf386727ad.hot-update.js",
"/chunks/sign-up.3df06c0e0acf386727ad.hot-update.js": "/chunks/sign-up.3df06c0e0acf386727ad.hot-update.js",
"/chunks/sign-in.b317237cc77803130faa.hot-update.js": "/chunks/sign-in.b317237cc77803130faa.hot-update.js",
"/chunks/sign-up.b317237cc77803130faa.hot-update.js": "/chunks/sign-up.b317237cc77803130faa.hot-update.js",
"/chunks/sign-in.4be4d187059207a79690.hot-update.js": "/chunks/sign-in.4be4d187059207a79690.hot-update.js",
"/chunks/sign-up.4be4d187059207a79690.hot-update.js": "/chunks/sign-up.4be4d187059207a79690.hot-update.js",
"/chunks/sign-in.122c25da8d2adf4a7db2.hot-update.js": "/chunks/sign-in.122c25da8d2adf4a7db2.hot-update.js",
"/chunks/sign-up.122c25da8d2adf4a7db2.hot-update.js": "/chunks/sign-up.122c25da8d2adf4a7db2.hot-update.js",
"/chunks/sign-in.d3f1db61a1ac75d62c67.hot-update.js": "/chunks/sign-in.d3f1db61a1ac75d62c67.hot-update.js",
"/chunks/sign-up.d3f1db61a1ac75d62c67.hot-update.js": "/chunks/sign-up.d3f1db61a1ac75d62c67.hot-update.js",
"/chunks/sign-in.af5c2279b97771bc1219.hot-update.js": "/chunks/sign-in.af5c2279b97771bc1219.hot-update.js",
"/chunks/sign-up.af5c2279b97771bc1219.hot-update.js": "/chunks/sign-up.af5c2279b97771bc1219.hot-update.js",
"/chunks/sign-in.c32a4a6966a1237ca44b.hot-update.js": "/chunks/sign-in.c32a4a6966a1237ca44b.hot-update.js",
"/chunks/sign-up.c32a4a6966a1237ca44b.hot-update.js": "/chunks/sign-up.c32a4a6966a1237ca44b.hot-update.js",
"/chunks/sign-in.fb2d6d90aa8552798587.hot-update.js": "/chunks/sign-in.fb2d6d90aa8552798587.hot-update.js",
"/chunks/sign-up.fb2d6d90aa8552798587.hot-update.js": "/chunks/sign-up.fb2d6d90aa8552798587.hot-update.js",
"/chunks/sign-in.7f2a3277c00c27b82fcd.hot-update.js": "/chunks/sign-in.7f2a3277c00c27b82fcd.hot-update.js",
"/chunks/sign-up.7f2a3277c00c27b82fcd.hot-update.js": "/chunks/sign-up.7f2a3277c00c27b82fcd.hot-update.js",
"/chunks/sign-in.943587f179a95cb975d3.hot-update.js": "/chunks/sign-in.943587f179a95cb975d3.hot-update.js",
"/chunks/sign-up.943587f179a95cb975d3.hot-update.js": "/chunks/sign-up.943587f179a95cb975d3.hot-update.js",
"/chunks/sign-in.35202744542f83806ccf.hot-update.js": "/chunks/sign-in.35202744542f83806ccf.hot-update.js",
"/chunks/sign-up.35202744542f83806ccf.hot-update.js": "/chunks/sign-up.35202744542f83806ccf.hot-update.js",
"/chunks/sign-in.36fbb8ae11038d8adbd7.hot-update.js": "/chunks/sign-in.36fbb8ae11038d8adbd7.hot-update.js",
"/chunks/sign-up.36fbb8ae11038d8adbd7.hot-update.js": "/chunks/sign-up.36fbb8ae11038d8adbd7.hot-update.js",
"/chunks/sign-in.72458065f0560c6f74f5.hot-update.js": "/chunks/sign-in.72458065f0560c6f74f5.hot-update.js",
"/chunks/sign-up.72458065f0560c6f74f5.hot-update.js": "/chunks/sign-up.72458065f0560c6f74f5.hot-update.js",
"/chunks/sign-in.dd026fb79f6349589a5e.hot-update.js": "/chunks/sign-in.dd026fb79f6349589a5e.hot-update.js",
"/chunks/sign-up.dd026fb79f6349589a5e.hot-update.js": "/chunks/sign-up.dd026fb79f6349589a5e.hot-update.js",
"/chunks/sign-in.9516287e16db16412cdd.hot-update.js": "/chunks/sign-in.9516287e16db16412cdd.hot-update.js",
"/chunks/sign-in.091ebba26a8ccb5a5eab.hot-update.js": "/chunks/sign-in.091ebba26a8ccb5a5eab.hot-update.js",
"/chunks/sign-in.710ada1eab74f1fdab1a.hot-update.js": "/chunks/sign-in.710ada1eab74f1fdab1a.hot-update.js"
}

View File

@@ -1,9 +1,15 @@
<template>
<div class="wrapper">
<div class="icon-wrapper">
<facebook-icon @click="socialite('facebook')" class="icon"/>
<github-icon @click="socialite('github')" class="icon"/>
<h1 @click="socialite('google')" class="icon">G</h1>
<div class="wrapper flex flex-row w-1/2 ml-2">
<div class="w-1/3 grid justify-items-center items-center cursor-pointer">
<facebook-icon @click="socialiteRedirect('facebook')" />
</div>
<div class="w-1/3 grid justify-items-center items-center cursor-pointer">
<github-icon @click="socialiteRedirect('github')" />
</div>
<div class="w-1/3 grid justify-items-center items-center cursor-pointer">
<h1 @click="socialiteRedirect('google')">G</h1>
</div>
</div>
</template>
@@ -18,18 +24,11 @@ export default {
GithubIcon,
},
methods: {
socialite(provider) {
socialiteRedirect(provider) {
this.isLoading = true
axios
.get(`/api/socialite/${provider}/redirect`)
.then((response) => {
if(response.data.url) {
window.location.href = response.data.url
}
})
.catch(() => this.$isSomethingWrong())
this.$store.dispatch('socialiteRedirect', provider)
},
}
@@ -39,21 +38,7 @@ export default {
<style lang="scss" scoped>
.wrapper {
display: flex;
justify-content: center;
margin: 50px 0px 0px 0px;
.icon-wrapper {
width: 200px;
display: flex;
align-content: center;
justify-content: space-between;
.icon {
align-self: center;
cursor: pointer;
}
}
margin: 50px auto 0px auto;
}
</style>

View File

@@ -48,6 +48,17 @@ const actions = {
router.push({name: 'SignIn'})
})
},
socialiteRedirect: ({commit}, provider) => {
axios
.get(`/api/socialite/${provider}/redirect`)
.then((response) => {
if(response.data.url) {
window.location.href = response.data.url
}
})
.catch(() => this.$isSomethingWrong())
},
addToFavourites: (context, folder) => {
let addFavourites = []
let items = [folder]

View File

@@ -237,8 +237,15 @@
this.checkedAccount = response.data
// Show sign in password page
this.goToAuthPage('sign-in')
if(response.data.oauth_provider) {
// Redirect user to socialite login if he's accout is registered by socialite
this.$store.dispatch('socialiteRedirect', response.data.oauth_provider)
} else {
// Show sign in password page
this.goToAuthPage('sign-in')
}
})
.catch(error => {

View File

@@ -1,6 +1,6 @@
<template>
<PageTab>
<PageTabGroup v-if="! user.data.attributes.socialite_account">
<PageTabGroup>
<ValidationObserver ref="password" @submit.prevent="resetPassword" v-slot="{ invalid }" tag="form" class="form block-form">
<FormLabel>{{ $t('user_password.title') }}</FormLabel>
<div class="block-wrapper">

View File

@@ -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

View File

@@ -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,
];
}
}

View File

@@ -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);

View File

@@ -54,6 +54,7 @@ class User extends Authenticatable implements MustVerifyEmail
protected $fillable = [
'email',
'password',
'oauth_provider',
];
protected $hidden = [

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);
});
}
}
}

View File

@@ -32,6 +32,21 @@ class UserAccountTest extends TestCase
Storage::disk('local')
->assertExists('files/' . User::first()->id);
}
/**
* @test
*/
public function it_socialite_redirect()
{
$response = $this->call('GET', 'api/socialite/google/redirect');
$this->assertStringContainsString('accounts.google.com/o/oauth2/auth', $response['url']);
}
/**
* @test
*/
public function it_socialite_callback()
{
}
/**
* todo: finish test
*/
@@ -146,6 +161,7 @@ class UserAccountTest extends TestCase
'email' => $user->email,
'role' => $user->role,
'two_factor_authentication' => false,
'socialite_account' => false,
'folders' => [],
'storage' => [
'used' => 0,