123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <?php
- namespace App\Http\Controllers;
- use App\Http\Middleware\RedirectAuthenticatedPro;
- use App\Lib\Backend;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Cookie;
- use Exception;
- class LoginController extends Controller
- {
- public function __construct()
- {
- $this->middleware('pro.auth.redirect')->except('logout');
- }
- public function showLoginForm(Request $request)
- {
- return view('app/login');
- }
- public function login(Request $request)
- {
- $this->validate($request, [
- 'cell-number' => 'required',
- 'password' => 'required'
- ]);
- $api = new Backend();
- try {
- $apiResponse = $api->post('session/proLogInWithPassword', [
- 'cellNumber' => $request->post('cell-number'),
- 'password' => $request->post('password')
- ]);
- }catch (\Exception $e) {
- //TODO: Redirect with message
- }
- $data = json_decode($apiResponse->getContents());
- if(!property_exists($data, 'success') || !$data->success) {
- return back()->with('message', 'Invalid login credentials.')
- ->withInput($request->input());
- }
- Cookie::queue('sessionKey', $data->data->sessionKey);
- return redirect()->route('dashboard');
- }
- public function logout(Request $request)
- {
- $api = new Backend();
- try {
- //$apiResponse = $api->get('session/logOut?sessionKey=' . $request->cookie('sessionKey'));
- $apiResponse = $api->sendRequest('session/logOut', 'GET',
- [
- 'headers' => [
- 'sessionKey' => $request->cookie('sessionKey')
- ]
- ]);
- $data = json_decode($apiResponse->getContents());
- if(!property_exists($data, 'success') || !$data->success) {
- //TODO: throw message to log
- throw new Exception('Failed to log out of backend');
- }
- }catch (Exception $e) {
- // TODO: Log message
- // TODO: Never fail on logout. Just delete cookie.
- }
- finally {
- Cookie::queue(Cookie::forget('sessionKey'));
- }
- return redirect()->route('login');
- }
- }
|