AppSessionController.php 4.5 KB

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