2017-04-26 38 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