* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ class SessionController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ protected $_config; public function __construct() { $this->middleware('customer')->except(['show','create']); $this->_config = request('_config'); $subscriber = new CustomerEventsHandler; Event::subscribe($subscriber); } public function show() { if (auth()->guard('customer')->check()) { return redirect()->route('customer.session.index'); } else { return view($this->_config['view']); } } public function create(Request $request) { $request->validate([ 'email' => 'required|email', 'password' => 'required' ]); if (! auth()->guard('customer')->attempt(request(['email', 'password']))) { session()->flash('error', trans('shop::app.customer.login-form.invalid-creds')); return redirect()->back(); } if (auth()->guard('customer')->user()->is_verified == 0) { session()->flash('info', trans('shop::app.customer.login-form.verify-first')); Cookie::queue(Cookie::make('enable-resend', 'true', 1)); Cookie::queue(Cookie::make('email-for-resend', $request->input('email'), 1)); auth()->guard('customer')->logout(); return redirect()->back(); } //Event passed to prepare cart after login Event::fire('customer.after.login', $request->input('email')); return redirect()->intended(route($this->_config['redirect'])); } public function destroy($id) { auth()->guard('customer')->logout(); Event::fire('customer.after.logout', $id); return redirect()->route($this->_config['redirect']); } }