有没有童鞋遇到过同样的问题:laravel 登录认证时密码字段默认是"password",不修改源码的前提下如何使用其它名称?

如题,其实我是在接入jwt认证时调用$token=JWTAuth::attempt($credentials)或auth()->attempt($credentials)生成token时发现laravel源码认证相关的类里是写死了密码的字段名"password"的,比如:src\Illuminate\Auth\GenericUser.php文件里的getAuthPassword()方法,该方法是直接从本类的retrieveByCredentials方法里查到用户,并直接使用password名称的字段作来使用的。所以貌似要修改只能改这里?
由于历史原因公司项目里的用户密码字段不是"password",想问下除了直接修改laravel框架原码外,还有别的方式能能实现码?比如在app目录通过配置或其它修改?求大神指教。
小怪兽爱吃肉
浏览 426回答 2
2回答

慕标5832272

刚好,一模一样的问题,这个不是jwt是对内置的Auth一个介绍。php-Laravel:HowcanichangethedefaultAuthPasswordfieldname-StackOverflow补充一下注册模型的位置吧。vendor/laravel/framework/src/Illuminate/Auth/CreatesUserProviders.php:39

三国纷争

$credentials=Arr::only($request->post(),['email','user_password']);JWTAuth::attempt($credentials);这样复写呢?相当于自定义了,代码用的laravel5.8的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript