2017-04-26 72 views
0

我已經爲每個CRM獲得了相同的登錄頁面。通過捲曲請求進行用戶驗證

這力學是:

  1. 輸入密碼和登錄
  2. 發送捲曲CRM上crm.dev/api/auth/check用戶數據,其中檢查,如果用戶在CRM存在
  3. CRM如果用戶存在,則通過Auth :: user('user_data_here')驗證用戶並重定向到CRM的主頁後返回成功。

我的問題是驗證不起作用。會話中沒有用戶數據(因爲前面的問題)。

CRM授權碼:

public function checkUserExists(Request $request) 
{ 
    $this->redirectIfAuthorized(); 

    $user = User::find($request->uid); 
    if ($user) { 
     return ['response' => 'LOGIN_SUCCESS']; 
    } 
    return ['response' => 'DB_ERROR']; 
} 

public function login(Request $request) 
{ 
    $this->validateLogin($request); 
    $user = User::find($request->uid); 
    $user->remember_token = $request->token; 
    if ($user->update()) { 
     Auth::login($user, true); 
     return redirect()->intended($this->redirectPath()); 
    } else { 
     return redirect($this->redirectAfterLogout); 
    } 
} 

public function redirectIfAuthorized() 
{ 
    if (Auth::check()) { 
     return redirect($this->redirectTo); 
    } 
} 

阿比路線:

Route::group(['prefix' => 'auth'], function() { 
    Route::post('check', '[email protected]'); 
    Route::get('login', '[email protected]'); 
    Route::get('logout', '[email protected]'); 
}); 

和登錄頁面的邏輯,這種捲曲要求

private function sendToken($action, $user, $token) 
{ 
    $query = DB::table('user_base')->join('bases', 'bases.id', '=', 'user_base.base_id') 
            ->where('user_base.user_id', $user); 

    $result = $query->get(); 
    foreach ($result as $row) { 
     $urlAPI = $row->url_api; 
     if ($urlAPI == 'http://appliance.dev/api/auth') { 
      $urlAPI .= '/check'; 
     } 
     $rsp = $this->curl($urlAPI, array(
      'apiKey' => $this->apiKey, 
      $action => true, 
      'uid' => $row->base_uid, 
      'token' => $token 
     )); 
    } 
} 

回答

0

我需要在web.php使用路由file代替api.php