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

更新日期: 2019-07-12 阅读次数: 864 字数: 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年12月07日 大雪
2019年12月09日 "一二九"运动纪念日
2019年12月09日 世界足球日
2019年12月10日 世界人权日
2019年12月12日 西安事变纪念日
2019年12月13日 南京大屠杀
2019年12月20日 澳门回归日
2019年12月21日 国际篮球日
2019年12月22日 冬至
2019年12月24日 平安夜
2019年12月25日 圣诞节
查看更多节日