AppSessionController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Support\Facades\Cookie;
  5. use Illuminate\Support\Facades\Http;
  6. class AppSessionController extends Controller
  7. {
  8. public function proRequestSmsLogInToken(){
  9. return view('public.pro-request-sms-login-token');
  10. }
  11. public function proLogIn(){
  12. return view('public.pro-log-in');
  13. }
  14. public function processProLogIn(Request $request){
  15. $loginUrl = env('BACKEND_URL', 'http://localhost:8080') . '/api/session/proLogIn';
  16. $response = Http::asForm()->post($loginUrl, [
  17. 'cellNumber' => $request->get('cellNumber'),
  18. 'token' => $request->get('token'),
  19. ])->json();
  20. if(!$response['success']){
  21. return back()->with("message", $response['message']);
  22. }
  23. $sessionKey = $response['data']["sessionKey"];
  24. $request->session()->put("authID", $response['data']["proId"]);
  25. $cookie = cookie()->forever('sessionKey', $sessionKey, '/');
  26. return redirect("/mc/dashboard")->withCookie($cookie);
  27. }
  28. public function processProLogOut(Request $request){
  29. $logOutUrl = env('BACKEND_URL', 'http://localhost:8080') . '/api/session/logOut';
  30. $response = Http::asForm()->withHeaders(['sessionKey'=>$request->cookie('sessionKey')])->post($logOutUrl)->json();
  31. if(!$response['success']){
  32. return back()->with("message", $response['message']);
  33. }
  34. Cookie::queue(Cookie::forget('sessionKey'));
  35. //$cookie = cookie()->forget('sessionKey', '/');
  36. return redirect(route('pro-request-sms-login-token'))->withCookie($cookie);
  37. }
  38. public function postToAPI(Request $request) {
  39. session()->remove('message');
  40. // call java api
  41. $data = [];
  42. $fields = $request->all();
  43. foreach ($fields as $key => $value) {
  44. if($key[0] !== '_') {
  45. $data[$key] = $value;
  46. }
  47. }
  48. if(!isset($data['uid']) && isset($fields['_uid'])) {
  49. $data['uid'] = $fields['_uid'];
  50. }
  51. $url = env('BACKEND_URL', 'http://localhost:8080') . $request->input('_api');
  52. // dd($url);
  53. $response = Http::asForm()
  54. ->withHeaders(['sessionKey'=>$request->cookie('sessionKey')])
  55. ->post($url, $data)
  56. ->json();
  57. // dd($response);
  58. if(!isset($response['success']) || !$response['success']){
  59. $message = 'API error';
  60. if(isset($response['error'])) {
  61. $message = $response['error'];
  62. if(isset($response['path'])) $message .= ': ' . $response['path'];
  63. }
  64. else if(isset($response['message'])) $message = $response['message'];
  65. return redirect($request->input('_return'))
  66. ->withInput()
  67. ->with('message', $message);
  68. }
  69. return redirect($request->input('_success'));
  70. }
  71. public function postToAPIAjax(Request $request) {
  72. session()->remove('message');
  73. // call java api
  74. $data = [];
  75. $fields = $request->all();
  76. foreach ($fields as $key => $value) {
  77. if($key[0] !== '_') {
  78. $data[$key] = $value;
  79. }
  80. }
  81. if(!isset($data['uid']) && isset($fields['_uid'])) {
  82. $data['uid'] = $fields['_uid'];
  83. }
  84. $url = env('BACKEND_URL', 'http://localhost:8080') . $request->input('_api');
  85. // dd($url);
  86. $response = Http::asForm()
  87. ->withHeaders(['sessionKey'=>$request->cookie('sessionKey')])
  88. ->post($url, $data)
  89. ->json();
  90. // dd($response);
  91. return response()->json($response);
  92. }
  93. }