- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Laravel 5.8.10 项目中遇到身份验证问题。我没有使用 Laravel 创建的用于身份验证的默认表单。当我在浏览器中访问 URL/仪表板时,通常用户会在登录时被重定向。该应用程序无论如何都允许它。此外,当我使用 Auth::user()
时,它返回 null。
当我键入无效的用户名和密码时,它不会从登录屏幕传递。当我键入无效凭据时,它会重定向到仪表板。通过仪表板 View 访问 URL 的问题也仍然存在。就好像您不需要身份验证就可以访问该路由。
注意:我的 .env 文件中有一个变量 PASSWORD_HASH
用于启用或禁用密码加密。
用户模型
namespace App\Entities;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Authenticatable
{
use Notifiable;
use SoftDeletes;
protected $table = "users";
public $timestamps = true;
protected $fillable = [
'cpf', 'name', 'phone', 'birth', 'gender', 'notes', 'email', 'password', 'status', 'permission'
];
protected $hidden = [
'password', 'remember_token',
];
public function groups()
{
return $this->belongsToMany(Group::Class, 'user_groups');
}
public function setPasswordAttribute($value)
{
$this->attributes['password'] = env('PASSWORD_HASH') ? bcrypt($value) : $value;
}
}
config/auth.php
return [
'defaults' => [
'guard' => 'web',
'passwords' => 'users',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Entities\User::class,
],
],
'passwords' => [
'users' => [
'provider' => 'users',
'table' => 'password_resets',
'expire' => 60,
],
],
];
仪表板 Controller
public function auth(Request $request)
{
$data = [
'email' => $request->get('username'),
'password' => $request->get('password')
];
try {
if (env('PASSWORD_HASH')) {
Auth::attempt($data, false);
} else {
$user = $this->repository->findWhere(['email' => $request->get('username')])->first();
if (!$user)
throw new Exception("O e-mail informado é inválido. PEEEEN!");
if ($user->password != $request->get('password'))
throw new Exception("A senha informada é inválida. PEEEEN!");
Auth::login($user);
}
return redirect()->route('user.dashboard');
} catch (Exception $e) {
return $e->getMessage();
}
}
路线
Route::get('/login', ['uses' => 'Controller@fazerlogin']);
Route::post('/login', ['as' => 'user.login', 'uses' => 'DashboardController@auth']);
Route::get('/dashboard', ['as' => 'user.dashboard', 'uses' => 'DashboardController@index']);
查看登录
<section id="conteudo-view" class="login">
<h1>Investindo</h1>
<h3>O nosso gerenciador de investimento</h3>
{!! Form::open(['route' => 'user.login', 'method' => 'post']) !!}
<p>Acesse o sistema</p>
<label>
{!! Form::text('username', null, ['class' => 'input', 'placeholder' => "Usuário"]) !!}
</label>
<label>
{!! Form::password('password', ['placeholder' => 'Senha']) !!}
</label>
{!! Form::submit('Entrar') !!}
{!! Form::close() !!}
</section>
.env
PASSWORD_HASH=false
这个想法是,当注册用户时它为 false 时,它停止加密密码,而当为 true 时,进行加密。这是有效的。
数据库用户
最佳答案
在没有授权的情况下停止重定向到仪表板使用授权中间件路由
Route::middleware(['auth'])->group(function () {
Route::get('/dashboard', ['as' => 'user.dashboard', 'uses' => 'DashboardController@index']);
});
env 返回字符串,而不是 bool 值,所以使用 env('PASSWORD_HASH') == 'true'
检查密码哈希是否启用
使用 loginUsingId()
手动登录。
if(env('PASSWORD_HASH') == 'true') {
Auth::attempt($data, false);
} else {
$user = User::where('email', $request->username)->where('password', $request->password)->first();
if(!$user){
throw new Exception("O e-mail informado é inválido. PEEEEN!");
} else {
Auth::loginUsingId($user->id);
//redirect
}
}
关于php - Auth::user() 在 Laravel 5.8 中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55945769/
最近开始学习oracle和sql。 在学习的过程中,我遇到了几个问题,我的 friend 在接受采访时被问到这些问题。 SELECT * FROM Employees WHERE NULL IS N
这个问题在这里已经有了答案: Can we subtract NULL pointers? (4 个回答) 关闭 2 个月前。 是否定义了NULL - NULL? (char *)NULL - (ch
是否有推荐的方法(根据 .net Framework 指南)检查 null,例如: if (value == null) {//code1} else {//code2} 或 if (value !=
我正在尝试将值插入数据库,但出现这样的错误任何人都可以告诉我为什么该值为空,如下所示: An exception occurred while executing 'INSERT INTO perso
这个问题在这里已经有了答案: String concatenation with a null seems to nullify the entire string - is that desire
您好,我正在 Android 联系人搜索模块中工作。我正在查询下方运行。 cur = context.getContentResolver().query(ContactsContract.Data.
下面的 SQL 表定义说明了从我的 MYSQL 数据库创建表的语句之一,该数据库是由我公司的前开发人员开发的。 DROP TABLE IF EXISTS `classifieds`.`category
我主要有应用程序开发背景。在编程语言中 variable == null或 variable != null有效。 当涉及到 SQL 时,以下查询不会给出任何语法错误,但也不会返回正确的结果。 sel
我在尝试检查某些元素是否为 NULL 时遇到段错误或不。任何人都可以帮忙吗? void addEdge(int i, int j) { if (i >= 0 && j > 0)
在 SQL 服务器中考虑到以下事实:Col1 和 Col2 包含数值和 NULL 值 SELECT COALESCE(Col1,Col2) 返回一个错误:“COALESCE 的至少一个参数必须是一个不
在 SQL 服务器中考虑到以下事实:Col1 和 Col2 包含数值和 NULL 值 SELECT COALESCE(Col1,Col2) 返回一个错误:“COALESCE 的至少一个参数必须是一个不
下面查询的关系代数表达式是什么?我找不到“Is Null”的表达式。 SELECT reader.name FROM reader LEFT JOIN book_borrow ON reader.ca
我正在尝试使用三元运算符来检查值是否为 null 并返回一个表达式或另一个。将此合并到 LINQ 表达式时,我遇到的是 LINQ 表达式的 Transact-SQL 转换试图执行“column = n
我在给定的代码中看到了以下行: select(0, (fd_set *) NULL, (fd_set *) NULL, (fd_set *) NULL, &timeout); http://linux
var re = /null/g; re.test('null null'); //> true re.test('null null'); //> true re.test('null null')
这个问题在这里已经有了答案: 关闭 13 年前。 我今天避开了一场关于数据库中空值的激烈辩论。 我的观点是 null 是未指定值的极好指示符。团队中有意见的其他每个人都认为零和空字符串是可行的方法。
由于此错误,我无法在模拟器中运行我的应用: Error:null value in entry: streamOutputFolder=null 或 gradle - Error:null value
我正在尝试在 Android 应用程序中创建电影数据库,但它返回错误。知道这意味着什么吗? public Cursor returnData() { return db.query(TABLE
我一直在检查浏览器中的日期函数以及运行时间 new Date (null, null, null); 在开发工具控制台中,它给出了有效的日期 Chrome v 61 回归 Sun Dec 31 189
为什么 NA==NULL 会导致 logical (0) 而不是 FALSE? 为什么 NULL==NULL 会导致 logical(0) 而不是 TRUE? 最佳答案 NULL 是一个“零长度”对象
我是一名优秀的程序员,十分优秀!