Laravel无需注册即可登录

时间:2020-11-09 11:51:52

标签: laravel authentication

是否可以在用户不在数据库中的情况下在Laravel 7中登录用户?我有一组用户,我不希望他们出现在我的数据库中,因为他们使用外部API进行登录,并且我可以从该API获取详细信息(通过XML)。

有3种类型的用户:

  1. AR部门的用户。普通注册用户。
  2. 非AR部门用户,但$ user-> gca =1。注册用户也是如此。
  3. 非AR部门和非GCA用户。 非注册用户

所有用户都使用外部API进行登录。但是,出于组织目的,我仅在数据库中注册前两个。

我的意图是使用API​​中的第三种用户详细信息来使用Laravel登录,而无需接触我的数据库。

我在LoginController.php上的代码

$user_array = json_decode(file_get_contents($this->api_url . '?type=json&token=' . $request->cookie($this->cookie_name)));

if ($user_array->result)
{
  $u = NULL;

  if ($user = User::find($user_array->vid)) $u = $user;
  else if($user_array->division == 'AR' || !is_null(Gca::find($user_array->vid)))
  {
    $u = new User();

    if(! is_null(Gca::find($user_array->vid))) $u->gca = 1;
    $u->name = $user_array->firstname;
    $u->vid = $user_array->vid;
    $vid = $u->vid;

    $u->save();

    return view('register', compact('vid'));
   }
   else
   {
    $user = new User();
    $user->division = $user_array->division;
    $user->vid = $user_array->vid;
    $user->name = $user_array->firstname;
    $user->surname = $user_array->lastname;

    Auth::login($user); //This doesn't seem to work.

    return redirect('/');
   }
}

谢谢。

0 个答案:

没有答案