laravel backpack 管理后台使用手机号替换邮箱登录

更新日期: 2019-07-12 阅读次数: 484 字数: 400 分类: backpack

这个时代用邮箱的人越来越少。很多客户反馈,希望使用手机号替换掉目前的邮箱登录管理后台的方式。

Laravel 切换登录方式确实非常简单。

使用手机号替换邮箱登录

修改 username 的返回即可。

+++ b/app/Http/Controllers/Auth/LoginController.php
@@ -20,6 +20,11 @@ class LoginController extends Controller

     use AuthenticatesUsers;

+       public function username()
+       {
+               return 'tel';
+       }

登录页面的模板中,将 email 统一替换为 tel.

resources/views/vendor/backpack/base/auth/login.blade.php

针对 backpack admin 管理后台的路由修改。

+++ b/routes/web.php
@@ -16,3 +16,7 @@ Route::get('/', function () {
 });

+
+Route::group(['prefix' => config('backpack.base.route_prefix')], function () {
+        $this->post('login', 'Auth\LoginController@login');
+});

用户体验优化

禁止 chrome 浏览器自动填充密码,主要是为了规避在后台编辑用户信息时,将已登录账号的密码赋值给了其他账号。

             [
                 'name'  => 'password',
                 'label' => '密码',
                 'type'  => 'password',
                 'tab' => '1: 基本信息',
+                'attributes' => [
+                    'autocomplete' => 'new-password',
+                ],

修改成 new-password 之后,无论之前有没有密码,在编辑用户资料时,密码字段都会显示为空。

如果之前有密码,当前编辑页面,不设置密码,保存之后,旧有密码依旧有效。我觉得这是合理的。

但是,我一直没有搞明白为什么 chrome 下 autocomplete 并不生效。

增加校验

+++ b/app/Http/Requests/UserUpdateCrudRequest.php
@@ -14,6 +14,14 @@ class UserUpdateCrudRequest extends CrudRequest
     public function rules()
     {
         return [
+            'password' => 'confirmed',
+        ];
+    }
+
+    public function messages()
+    {
+        return [
+            'password.confirmed' => '请确认密码一致',
         ];
     }
 }

爱评论不评论

近期节日

2019年09月18日 "九一八"事变纪念日
2019年09月20日 国际爱牙日
2019年09月21日 国际和平日
2019年09月22日 世界无车日
2019年09月23日 秋分
2019年09月23日 国际聋人节
2019年09月27日 世界旅游日
2019年10月01日 国庆节
2019年10月04日 世界动物日
2019年10月07日 重阳节
2019年10月08日 寒露
2019年10月09日 世界邮政日
查看更多节日