zoukankan      html  css  js  c++  java
  • Laravel Vuejs 实战:开发知乎 (2)用户注册

    1.本节需要发送验证邮件

    2.教程使用SendCloud发送邮件 【我使用的是mailtrap】

    3.

      1 composer require laravel/ui

    安装完成后

      1 php artisan ui vue –auth


    4.RegisterController中create方法内实现用户创建的默认值配置


      1 class RegisterController extends Controller
      2 {
      3     /*
      4     |--------------------------------------------------------------------------
      5     | Register Controller
      6     |--------------------------------------------------------------------------
      7     |
      8     | This controller handles the registration of new users as well as their
      9     | validation and creation. By default this controller uses a trait to
     10     | provide this functionality without requiring any additional code.
     11     |
     12     */
     13 
     14     use RegistersUsers;
     15 
     16     /**
     17      * Where to redirect users after registration.
     18      *
     19      * @var string
     20      */
     21     protected $redirectTo = RouteServiceProvider::HOME;
     22 
     23     /**
     24      * Create a new controller instance.
     25      *
     26      * @return void
     27      */
     28     public function __construct()
     29     {
     30         $this->middleware('guest');
     31     }
     32 
     33     /**
     34      * Get a validator for an incoming registration request.
     35      *
     36      * @param array $data
     37      * @return IlluminateContractsValidationValidator
     38      */
     39     protected function validator(array $data)
     40     {
     41         return Validator::make($data, [
     42             'name' => ['required', 'string', 'max:255'],
     43             'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
     44             'password' => ['required', 'string', 'min:8', 'confirmed'],
     45         ]);
     46     }
     47 
     48     /**
     49      * Create a new user instance after a valid registration.
     50      *
     51      * @param array $data
     52      * @return AppUser
     53      */
     54     protected function create(array $data)
     55     {
     56         return User::create([
     57             'name' => $data['name'],
     58             'email' => $data['email'],
     59             'avatar' => '/image/avatars/default.png',
     60             //这里其实不需要再设置activation_token的值,也不需要再在验证后设置activated=1 采用Laravel提供的新功能验证用户邮箱即可 默认带一个email_verified_at字段,且更加完善具有过期时间戳和签名
     61             'activation_token' => str_random(),//通过composer require laravel/helpers安装扩展包
     62             'password' => Hash::make($data['password']),
     63         ]);
     64     }
     65 }
     66 

    注意:去掉教程当中发送邮件部分的代码,直接使用默认的Laravel提供的邮件验证流程 User.php实现MustVerifyEmail及verify的添加:如下三个文件内部的代码

    User.app中:

      1 class User extends Authenticatable implements MustVerifyEmail
      2 {
      3     use Notifiable;
      4 
      5     /**
      6      * The attributes that are mass assignable.
      7      *
      8      * @var array
      9      */
     10     protected $fillable = [
     11         'name', 'email', 'password', 'avatar', 'activation_token'
     12     ];
     13 
     14     /**
     15      * The attributes that should be hidden for arrays.
     16      *
     17      * @var array
     18      */
     19     protected $hidden = [
     20         'password', 'remember_token',
     21     ];
     22 
     23     /**
     24      * The attributes that should be cast to native types.
     25      *
     26      * @var array
     27      */
     28     protected $casts = [
     29         'email_verified_at' => 'datetime',
     30     ];
     31 }


    HomeController当中:


      1 class HomeController extends Controller
      2 {
      3     /**
      4      * Create a new controller instance.
      5      *
      6      * @return void
      7      */
      8     public function __construct()
      9     {
     10         $this->middleware(['auth', 'verified']);
     11     }
     12 
     13     /**
     14      * Show the application dashboard.
     15      *
     16      * @return IlluminateContractsSupportRenderable
     17      */
     18     public function index()
     19     {
     20         return view('home');
     21     }
     22 }

    web.php当中:

      1 <?php
      2 
      3 /*
      4 |--------------------------------------------------------------------------
      5 | Web Routes
      6 |--------------------------------------------------------------------------
      7 |
      8 | Here is where you can register web routes for your application. These
      9 | routes are loaded by the RouteServiceProvider within a group which
     10 | contains the "web" middleware group. Now create something great!
     11 |
     12 */
     13 
     14 Route::get('/', function () {
     15     return view('welcome');
     16 });
     17 
     18 Auth::routes(['verify' => true]);
     19 
     20 Route::get('/home', 'HomeController@index')->name('home');
     21 



    5.要使用helper方法需要 composer require laravel/helpers  安装扩展包

  • 相关阅读:
    OCP-052考试题库汇总(29)-CUUG内部解答版
    OCP-052考试题库汇总(28)-CUUG内部解答版
    OCP-052考试题库汇总(27)-CUUG内部解答版
    OCP-052考试题库汇总(26)-CUUG内部解答版
    OCP-052考试题库汇总(25)-CUUG内部解答版
    OCP-052考试题库汇总(24)-CUUG内部解答版
    007 线程的join方法
    006 线程休眠
    005 线程打断---完成线程的终结
    004 守护线程
  • 原文地址:https://www.cnblogs.com/dzkjz/p/12370169.html
Copyright © 2011-2022 走看看