/** * Authenticate Nodes Manager. * * @author Casper Rasmussen <*****@*****.**> * * @return \Illuminate\Http\RedirectResponse */ public function manager() { // Check for disabled feature if (!config('nodes.backend.manager.active', true)) { return redirect()->route('nodes.backend.login.form')->with('error', 'Manager auth is disabled.'); } // Check the passed token vs a hash of email, constant and server token for current build if (hash('sha256', sprintf(env('NODES_MANAGER_SALT'), Request::get('email'), env('NODES_MANAGER_TOKEN'))) != Request::get('token')) { return redirect()->route('nodes.backend.login.form')->with('error', 'Manager token did not match'); } try { // Retrieve the Nodes user $user = $this->userRepository->loginUserFromManager(Request::all()); // Authenticate user backend_user_login($user); // Redirect into backend return $this->redirectSuccess(Cookie::get('url_to_redirect_to_after_user_login')); } catch (Exception $e) { try { // Notify bugsnag app('nodes.bugsnag')->notifyException($e, null, 'error'); } catch (Exception $e) { // Fail silent } // Redirect to login form return redirect()->route('nodes.backend.login.form')->with('error', 'Failed to login through manager'); } }