我最近开始使用Laravel 8,我正在尝试使用用户名和电子邮件一起登录,但我不知道如何做到这一点。在拉腊维尔7中,我可以使用。。。
protected function credentials(Request $request)
{
$field = filter_var($request->get($this->username()), FILTER_VALIDATE_EMAIL)
? $this->username()
: 'username';
return [
$field => $request->get($this->username()),
'password' => $request->password,
];
}
如何在Laravel 8中使用用户名和密码登录,因为Auth
文件夹中不再有LoginController
?
Laravel Jetstream(适用于Laravel 8)取代了以前Laravel版本的Laravel身份验证UI。这意味着,为了实现您想要的身份验证功能,您必须安装并使用Jetstream。要安装Jetstream with composer,请运行以下命令
composer require laravel/jetstream
php artisan jetstream:install
然后,根据要使用Livewire还是Inertia,运行以下两个命令之一:
php artisan jetstream:install livewire
或
php artisan jetstream:install inertia
然后跑
npm install && npm run dev
php artisan migrate
Jetstream已准备就绪。
这里是Jetstream留档和一个快速教程。
这是我的代码,您可以使用您的用户名或电子邮件登录,并且可以在验证部分使用正则表达式来完成。
public function login() {
$credentials = $this->validate();
if(auth()->attempt(array('email' => $this->email, 'password' => $this->password), $this->remember_me) ||
auth()->attempt(array('username' => $this->email, 'password' => $this->password), $this->remember_me)) {
$user = User::where(["email" => $this->email])
->orWhere(["username" => $this->email])
->first();
auth()->login($user, $this->remember_me);
return redirect()->intended('/dashboard');
}
else{
return $this->addError('email', trans('auth.failed'));
}
}
Laravel Jetstream的解决方案
您可以按照以下步骤使用用户名或电子邮件
进行身份验证。
1.确认登录输入字段名(让name为标识
)
2.更改配置/加固。php
'username' => 'email' to 'username' => 'identity'
3.在您的应用程序/提供商/FortifyServiceProvider中添加了以下身份验证代码。php文件内部引导方法
Fortify::authenticateUsing(function (LoginRequest $request) {
$user = User::where('email', $request->identity)
->orWhere('username', $request->identity)->first();
if (
$user &&
\Hash::check($request->password, $user->password)
) {
return $user;
}
});
[注意]请使用那些类
use Laravel\Fortify\Http\Requests\LoginRequest;
use App\Models\User;
#注册用户名
1.在寄存器中添加输入。刀身php
<div class="mt-4">
<x-jet-label for="username" value="{{ __('User Name') }}" />
<x-jet-input id="username" class="block mt-1 w-full" type="text" name="username" :value="old('username')" required autofocus autocomplete="username" />
</div>
2.在用户模型中添加用户名$filleble数组列表。
3.app/Actions/Fortify/CreateNewUser中的最后更改。php文件
Validator::make($input, [
..........
'username' => ['required', 'string', 'max:255', 'unique:users'],
.........
])->validate();
return User::create([
.......
'username' => $input['username'],
.....
]);
}
让我们享受身份验证。
客户已创建密钥存储库并存储凭据。为了验证密钥存储库,我已经在节点中创建了应用程序,并使用客户端id和客户端机密,我能够读取机密。但是现在客户不想使用客户id和客户机密,而是使用AZURE的用户名和密码来访问程序中的keyvault。它是一个没有MFA的keyvault访问的专用用户。 我不确定我们是否可以从节点JS使用用户名和密码访问keyvault。敬请建议。 谢谢
是否可以在Flatter中使用用户名和密码(而不是电子邮件和密码)实现Firebase身份验证?有没有办法用Firebase Auth插件来实现这一点?
我有一个用户名和密码,我怎么用他们来验证库贝特尔? 我要运行哪个命令? 我已经通读了https://kubernetes.io/docs/reference/access-authn-authz/authorization/和https://kubernetes.io/docs/reference/access-authn-authz/authorization/,但在其中找不到任何与本例相关的信
我想知道是否有能力登录与电子邮件和用户id+密码,我有一个项目,我想让用户添加一个唯一的号码(实际上是我们公司提供的工作识别号码),以能够登录到该计划将保持私人公司就业。 我需要firebase认证拒绝登录,即使电子邮件和密码是正确的,但用户id是错误的。
我正在使用生成用户密码的强哈希值。我想登录用户,但不想通过网络以明文形式发送密码,如何检查密码是否正确(没有往返),因为它是加盐的? 我有一个客户端/服务器场景。客户端是台式计算机上的应用程序(不是网站,也不是超文本传输协议服务器)。 我怎样才能做到这一点?我只是走了这么远:我正在客户端上生成salt散列,从中形成一个mcf并将其发送到我的服务器。将mcf保存到数据库。我没有发送密码,只发送了实际
问题内容: 目前,我正在使用Spring Security编写Web应用程序。我们有一个通过用户名和密码对用户进行身份验证的Web服务。 网络服务: 如何配置Spring Security将提供的用户名和密码传递给Web服务? 我写了一个仅接收用户名的。 我认为问题出在您的xml中。您是否关闭了自动配置?并且您的类是否扩展AbstractUserDetailsAuthenticationProvi