/** * Obtain the user information from GitHub. * * @return Response */ public function handleProviderCallback() { $user = Socialite::driver('github')->user(); if (auth()->guest()) { $exists = User::where('github_token', $user->token)->first(); if (!$exists) { $username = static::usernameCheck($user->getNickname()); $checkEmail = User::where('email', $user->getEmail())->first(); $email = $checkEmail ? null : $user->getEmail(); $name = trim($user->getName()) != '' ? $user->getName() : $username; $newUser = User::create(['github_token' => $user->token, 'name' => $name, 'username' => $username, 'email' => $email, 'verified' => true, 'settings' => []]); auth()->login($newUser, true); session()->flash('success', 'Successfully logged in!'); return redirect()->route('home'); } auth()->login($exists, true); session()->flash('success', 'Successfully logged in!'); return redirect()->route('home'); } $current = User::find(auth()->user()->getAuthIdentifier()); $current->github_token = $user->token; $current->save(); session()->flash('success', 'GitHub details updated successfully!'); return redirect()->route('settings'); }
public function create(Requests\Auth\RegisterUser $request, AppMailer $mailer) { $user = User::create(['username' => $request->input('username'), 'email' => $request->input('email'), 'password' => bcrypt($request->input('password')), 'settings' => []]); $user->emailVerification()->create(['token' => str_random(30), 'created_at' => Carbon::now()]); $mailer->sendEmailConfirmationTo($user); session()->flash('success', 'Account created successfully! You must verify your email!<br>May take up to 15 minutes. Be sure to check SPAM folder!'); return redirect()->route('home'); }