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
));
}
}