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

更新日期: 2019-07-12 阅读次数: 181 字数: 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年07月23日 大暑
2019年07月30日 非洲妇女日
2019年08月01日 八一建军节
2019年08月06日 国际电影节
2019年08月07日 七夕
2019年08月08日 立秋
2019年08月15日 日本投降日
2019年08月15日 中元节
2019年08月23日 处暑
2019年09月03日 抗日胜利纪念日
2019年09月08日 白露
2019年09月08日 国际扫盲日
查看更多节日