【问题标题】:User authentication via curl request通过 curl 请求进行用户身份验证
【发布时间】:2019-10-04 03:27:52
【问题描述】:

每个 CRM 都有相同的登录页面。

这些是步骤:

  1. 输入密码并登录
  2. 在 crm.dev/api/auth/check 上将 curl 发送到 CRM,检查用户数据,检查用户是否存在于 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);
    }
}

API 路由:

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

以及此 CURL 请求的登录页面逻辑

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

【问题讨论】:

    标签: php laravel authentication laravel-5


    【解决方案1】:

    我需要在web.php 文件中使用路由而不是api.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-26
      • 2017-04-07
      • 1970-01-01
      • 2013-12-29
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多