Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

StaffLoginController.php 3.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. namespace App\Http\Controllers\Auth;
  3. Use App\Staff;
  4. Use App\Model\StaffDetail;
  5. Use Hash;
  6. use Carbon\Carbon;
  7. use Gate;
  8. use Illuminate\Http\Request;
  9. use App\Http\Controllers\Controller;
  10. use Illuminate\Support\Facades\Auth;
  11. use Illuminate\Support\Facades\Log;
  12. class StaffLoginController extends Controller
  13. {
  14. //
  15. public function get_guard(){
  16. if(Auth::guard('ds')->check())
  17. {return "ds";}
  18. elseif(Auth::guard('agent')->check())
  19. {return "agent";}
  20. }
  21. public function showFormStaff(){
  22. return view('login');
  23. }
  24. public function encryptPassword($action, $string) {
  25. $output = false;
  26. $encrypt_method = "AES-256-CBC";
  27. $secret_key = '28472B4B6250655368566D5970337336';
  28. $secret_iv = md5(md5($string)); //'This is my secret iv';
  29. // hash
  30. $key = hash('sha256', $secret_key);
  31. $iv = substr(hash('sha256', $secret_iv), 0, 16);
  32. if ( $action == 'encrypt' ) {
  33. $output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
  34. $output = base64_encode($output);
  35. } else if( $action == 'decrypt' ) {
  36. $output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
  37. }
  38. return $output;
  39. }
  40. public function requestLoginStaff(Request $request) {
  41. $this->validate($request, [
  42. 'email' => 'required|email',
  43. 'password' => 'required|min:5'
  44. ]);
  45. $user = '';
  46. try {
  47. $message = trans('messages.invalid_login_credentials');
  48. $rememberMe = false;
  49. $user = Staff::where('email', $request->email)->where('roles_access','!=','Installer')->first();
  50. if (!empty($user)) {
  51. if($this->encryptPassword('encrypt', $request->password) == $user->password || $this->encryptPassword('encrypt', $request->password) == $user->password2){
  52. // Update last_login & last ip
  53. $user->last_login_at = Carbon::now(new \DateTimeZone('Asia/Kuala_Lumpur'))->toDateTimeString();
  54. $user->last_login_ip = $request->getClientIp();
  55. $user->save();
  56. if($user->roles_access == "Dealer"){
  57. Auth::guard('ds')->loginUsingId($user->_id, $rememberMe);
  58. return redirect('/dealer');
  59. }else if($user->roles_access == "Sales"){
  60. Auth::guard('agent')->loginUsingId($user->_id, $rememberMe);
  61. return redirect('/sales');
  62. }
  63. }
  64. }
  65. } catch (\Exception $e) {
  66. Log::error(__CLASS__ . "::" . __METHOD__ . " " . $e->getMessage() . "on line" . $e->getLine());
  67. }
  68. return redirect('/login/dashboard/staff')->with('error_msg', $message);
  69. }
  70. public function requestlogout(){
  71. // Get Current member id
  72. $id = Auth::guard($this->get_guard())->id();
  73. if (Auth::guard($this->get_guard())->check()) {
  74. $user = Staff::find($id);
  75. // Update last_login & last ip
  76. $user->last_login_at = Carbon::now(new \DateTimeZone('Asia/Kuala_Lumpur'))->toDateTimeString();
  77. $user->last_login_ip = \Request::getClientIp();
  78. $user->save();
  79. // Proceed to Log Out
  80. Auth::guard($this->get_guard())->logout();
  81. return redirect('/');
  82. // return redirect('http://cbb.swisslink.com.my/v2/');
  83. // return redirect('/login/dashboard/staff');
  84. }
  85. }
  86. public function hmmm() {
  87. $output = $this->encryptPassword('encrypt', 'admin123');
  88. dd($output);
  89. }
  90. }