0
我已經爲每個CRM獲得了相同的登錄頁面。通過捲曲請求進行用戶驗證
這力學是:
- 輸入密碼和登錄
- 發送捲曲CRM上crm.dev/api/auth/check用戶數據,其中檢查,如果用戶在CRM存在
- 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
));
}
}