Laravel - 不能再使用基本身份验证

Posted

技术标签:

【中文标题】Laravel - 不能再使用基本身份验证【英文标题】:Laravel - Can no longer use basic auth 【发布时间】:2018-10-24 12:22:41 【问题描述】:

我使用下面的文章在我的 laravel 项目中创建 JWT 身份验证。但现在我不能再使用基本身份验证。有没有办法使用基本身份验证?我的网络界面需要它。

https://scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps

namespace App\Http\Controllers\Auth;

use App\User;
use Validator;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\ThrottlesLogins;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;

class AuthController extends Controller


use AuthenticatesAndRegistersUsers, ThrottlesLogins;

public function __construct()

    $this->middleware('guest', ['except' => 'getLogout']);


protected function validator(array $data)

    return Validator::make($data, [
        'name' => 'required|max:255',
        'email' => 'required|email|max:255|unique:users',
        'password' => 'required|confirmed|min:6',
    ]);


protected function create(array $data)

    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);


Route::get('auth/login', 'Auth\AuthController@getLogin'); Route::post('auth/login', 'Auth\AuthController@postLogin');

更新:打开调试后出现以下错误:

Symfony\Component\Debug\Exception\FatalErrorException (E_UNKNOWN) 未找到特征“Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers”

【问题讨论】:

为什么不能使用?你得到什么错误?您对kernel.php 做了哪些更改尝试发布您的内核文件 @zuif - 添加了内核文件。我尝试使用身份验证表单登录,但它不会让我登录。但是,如果我安装一个单独的 laravel 实例并使用相同的后端,我可以登录。 您能否也发布您的配置auth.php 文件,并将您的控制器发布到您尝试使用基本身份验证的位置 @zuif - 刚刚添加。请参阅附件。 请不要发布代码图片并将代码本身放入您的问题/答案中。大多数图片托管服务提供商会随着时间的推移删除图片,这意味着您的问题/答案的内容会丢失。它还可以防止其他用户复制代码(即当他们想要测试它时)。 【参考方案1】:

一切看起来都很好,除了使用Tymon\JWTAuth,您应该进行这些更改

将 api 驱动程序更改为 jwt 而不是令牌,如果您发布代码而不是图像并将默认保护更改为 api,我会发布代码。

对于您的基本身份验证,您应该可以毫无问题地使用它。尝试这样做,如果您无法发布代码,我将发布代码。

【讨论】:

它不适用于基本身份验证。可能是因为基础是 Laravel 5.1。即使我已经升级到 5.6,它也没有 5.6 具有的相同身份验证功能。如果我输入 mydomain/auth/login,我会得到一个空白页。我在上面添加了控制器代码。我收到“哎呀,好像出了点问题”消息。 @user9465677 确保将APP_DEBUG=true 添加到您的.env 文件以查看完整的错误描述... Symfony \ Component \ Debug \ Exception \ FatalErrorException (E_UNKNOWN) Trait 'Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers' 未找到

以上是关于Laravel - 不能再使用基本身份验证的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS + Laravel 5 身份验证

text laravel HTTP基本身份验证

登录后 Laravel 基本身份验证重定向到 HTTPS 路由

如何为运行 Laravel 的 apache vhost 设置 HTTP 基本身份验证

使用 JWT 进行 Laravel API 身份验证

Laravel - Admin 和 Front 的身份验证问题