当前位置: 首页 > 知识库问答 >
问题:

登录时如何修改无密码的Laravel授权?

田巴英
2023-03-14

我使用laravel 5.0。我想使用auth laravel登录,但我只需要在登录时输入用户名(不需要电子邮件和/或密码)。我把代码改成了下面这些。

在我的登录控制器中

public function getLogin(){
    if(!Auth::check()) {
        return view('auth.login');  
    }
    else{
        return redirect('home');
    }
}

public function postLogin(){

    Auth::attempt([
        'USER_NAME' => Input::get('username')
    ]);

    return redirect('home');
}

在我的用户车型中:

<?php namespace App;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
use Authenticatable, CanResetPassword;

protected $table = 'MS_USER_ROLE';

}

我有一个错误:

EloquentUserProvider.php第111行中的ErrorException:未定义索引:密码

你知道怎么解决这个问题吗?

共有2个答案

邵华皓
2023-03-14

如果您通过用户名进行身份验证,只需手动登录:

public function postLogin()
{
    $user = User::whereUsername(request('username'))->firstOrFail():

    Auth::login($user);

    return redirect('home');
}

https://laravel.com/docs/5.2/authentication#authenticating-使用者

皇甫卓君
2023-03-14

检查文档中的Laravel身份验证。

您希望使用Auth::login()方法显式登录。

public function postLogin()
{
    $user = User::where('USER_NAME', '=', Input::get('username'))->firstOrFail();
    Auth::login($user);

    return redirect('home');
}
 类似资料:
  • 我正在使用Larave Jetstream livewire,我想修改登录名。 从初始值为1的隐藏输入字段“is_admin”登录 当用户提交登录表单后端检查时,使用数据库表字段的is\u admin=1 表结构:名称、电子邮件、密码、is_admin is_admin=0或1 我想检查is_admin标志,如果提供的凭据与电子邮件、密码和is_admin=1匹配,则只有用户可以登录。

  • 我使用的是Laravel5.0。我只想使用用户名(无密码)登录,因为我正在使用单点登录访问我的Laravel项目,因此如果用户单点登录成功,它将检查我的数据库,以确定登录用户的用户名是否已注册。 我已经找了一整天,但我仍然找到了线索。 我有一个错误: 传递给Illumb\Auth\Guard::login()的参数1必须实现接口Illumb\Contracts\Auth\Authenticatab

  • 登录时我总是得到无效的授权类型。我使用的是Laravel 7和passport 8.4。 我可以确认,我创建的client_secret没有错误运行php artisan护照:安装,但我找不到任何可能性,为什么获取访问令牌和刷新令牌不工作。 我使用自定义用户提供商,正确地设置在配置,我注意到如果我改变grant_typeclient_credentials它将只是工作,但没有刷新令牌,我想要什么。

  • 我试图设置AWS Cognito用户池与无密码登录以下这篇文章。但是,条件之一是“只允许自定义身份验证”。但是我需要我的应用程序允许用户使用其他提供商(oAuth和SAML)和无密码登录。 如何确保用户不能以某种方式使用在上述过程中生成的随机密码登录?还是有不同的方法?

  • 本文向大家介绍Mysql5.7如何修改root密码,包括了Mysql5.7如何修改root密码的使用技巧和注意事项,需要的朋友参考一下 版本更新,原来user里的password字段已经变更为authentication_string 版本更新 缘故,好多网上的教程都不适用了,甚至连官网的文档也不是能够顺利操作的。 如果 MySQL 正在运行,首先杀之: 运行 如果此时不想被远程连接: 使用mys

  • 本文向大家介绍mysql 修改密码和设置允许远程登录,包括了mysql 修改密码和设置允许远程登录的使用技巧和注意事项,需要的朋友参考一下 修改的用户都以root为列。 一、拥有原来的myql的root的密码; 方法一: 在mysql系统外,使用mysqladmin   方法二: 通过登录mysql系统,   二、忘记原来的myql的root的密码; 首先,你必须要有操作系统的root权限了。要是