【问题标题】:Laravel external AuthenticationLaravel 外部认证
【发布时间】:2017-10-16 16:38:21
【问题描述】:

我通过我验证的 RESTful API 进行身份验证,如果它成功,它会给我用户名,我接受它并尝试登录到我的 Laravel 应用程序。当我完成登录时,它似乎工作。但是,当我在网站上导航时,它似乎没有保持会话,我仍然以访客身份进行身份验证。

public function login(){
    // I do a guzzle request that gives me the value of $response['username']
    $Username = $response['username'];
    $user = User::where('username','thomc')->first();
    Auth::login($user);
    return view('home');
}

这是我的用户模型:

<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;
    protected $table = 'UserDetails';
}

我的桌子:

  • 用户名
  • 电子邮件
  • 名字
  • 姓氏
  • Facebook_ID
  • Google_ID

【问题讨论】:

    标签: php laravel authentication laravel-5.4


    【解决方案1】:

    不确定这是否是测试更改,但您没有使用 $Username,而是搜索用户 thomc。另一件需要注意的事情是检查数据库中是否存在具有用户名的用户,如果不存在,则返回的 $user 将为空。尝试使用 id 登录。

    $username = $response['username'];
    $user = User::where('username', $username)->firstOrFail();
    Auth::loginUsingId($user->id);
    

    还要确保所有路由都使用 web 中间件包装,并根据需要在路由上使用适当的 authguest 中间件。

    【讨论】:

      猜你喜欢
      • 2019-05-11
      • 2012-08-16
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多