> mobileapp Strategy - From Idea to Mobile App RealityVinova Our team will brainstorm with you on where to begin, where to go, and how to get you there. Whether you have a spark of an idea or an existing app – we can help. Getting your mobile strategy right is what our unique services are all about. We’ll wrestle with business challenges, discover new opportunities that will help you define and refine your product ideas into mobile app reality.

8 Things You Can Customize in Laravel Registration – Laravel Daily

8 Things You Can Customize in Laravel Registration – Laravel Daily

Laravel has a great Auth system out-of-the-box, with just a few commands you can have Login/Register functions ready. But let’s dive a little deeper and see what we can easily customize.

1. Disable Registration

What if your app has pre-registered users, or they are created by administrator, and there’s no public registration?

Since Laravel 5.7, All you need to do is add a parameter in routes/web.php:

Then you won’t see Register link in top-right corner, and the route /register will show 404 page.

2. Enable Email Verification

Another new feature of Laravel 5.7 is email verification, with database field users.email_verified_at. By default, it is disabled, but all the necessary fields and routes are generated, just hidden.

To enable this function, just pass a parameter in routes/web.php:

Also, make sure to run php artisan make:auth so it would generate necessary views for users to see after they click verification links.

Finally, if you need some routes available only to verified users, use verified Middleware:

3. Disable Reset Password

By default, php artisan make:auth command generates the Bootstrap login/register pages, along with one for resetting the forgotten password.

But if you want to disable that feature, and have some other mechanism to recover passwords, there’s another parameter in the routes/web.php:

Notice: you can combine this with the previous tips about registration and verification, and have this in your routes/web.php:

The underneath actual routes are listed in one method in vendor/laravel/framework/src/Illuminate/Routing/Router.php:

4. Redirect After Registration

By default, new registered users are redirected to URL /home. Perhaps, you want to change it, it’s done in a file app/Http/Controllers/Auth/RegisterController.php:

Just change this one parameter, and that’s it.

But what if you have more complicated logic than just one static URL? For example, you want to register to different URLs based on the role of new user. Then you can create a separate method in the same class RegisterController, with name redirectTo():

The method behavior will override $redirectTo property value, even if the value is present.

5. Change Field Validation Rules

Default Auth has four fields:

All of them are required, and these validation rules are specified in the same app/Http/Controllers/Auth/RegisterController.php:

So if you want to change any of these, like adding more complicated password requirements than just 6 symbols minimum, just edit this validator() method.

6. Disable Auto-Login after Registration

Another default behavior that you may want to change is auto-login immediately after the registration form. You may want to redirect your user to a separate “success” page and expect them to log in manually later.

To do that, you need to override register() method of a trait RegistersUsers.

The controller we discussed above, RegisterController, uses this important Trait:

This trait performs all the “dirty work” of registration. It is part of the core framework, located in vendor/laravel/framework/src/Illuminate/Foundation/Auth/RegistersUsers.php:

To disable auto-login, you need to delete this particular line:

But you can’t edit directly Laravel core, or any part of what’s inside /vendor. What you can do is override the same method and put it in your RegisterController, like this:

Finally, take care of redirectTo parameter or method, as shown in previous tip, so your registered user would land on a correct page.

7. Adding More Fields to Registration Form

The most typical example of this would be adding a surname field, in addition to default name. There are a few steps you need to do here:

Step 1. Add field to the database.

Just add this line to some migration file: $table->string(‘surname’);
Choose to edit existing default migration file, or create a new one with php artisan make:migration add_surname_to_users_table.

By default, app/User.php has this:

So you need to add your new ‘surname’ into that array.

Step 3. Add the field to View form.

You need to edit resources/views/auth/register.blade.php file and add another field, probably copy-paste all the code for name field and change some parts of it.

Step 4. Modify create() method.

Here’s how default method looks in RegisterController:

Guess what, you just need to add another line related to surname, so final result is this:

8. Login with Username instead of Email

By default, email is the most important field for user, it is used as a unique identifier and is part of the credentials. But what if, in your case, email is just an informational field, and actual login credential is another one, like username?

First, take care of adding that field into the database/model/views, like discussed in previous tip.

Next, you need to take a look at app/Http/Controllers/Auth/LoginController, specifically one trait:

If you get deeper into that /vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php trait, you will see one method:

See, it’s just a constant field returned by a function. And then it is used in actual validation and authentication, in the same trait:

So all you need to do is override this method into your LoginController, similar to what we did with redirectTo parameter previously in this article.

So, these are the tips I wanted to share in this article. Anything you would add?

Like our articles?
Check out our Laravel online courses!

This content was originally published here.

Malcare WordPress Security

mobile apps development singapore,android developer singapore,mobile game developer singapore,singapore web design services,singapore mobile app developer,mobile app developer singapore,web development singapore,mobile application development singapore,website developer singapore,web design services singapore,singapore web development,web application singapore,graphic designer in singapore,web designer singapore,ios developer singapore,mobile app development singapore,singapore mobile application developer,ruby on rails developer singapore,mobile developer singapore,design agency singapore,website development singapore,ios app development singapore,app development singapore,mobile apps singapore,web development company singapore,web design singapore,singapore web design,singapore website design,website design singapore,app developer singapore,mobile application developer singapore,developer in singapore,design firms in singapore,singapore app developer,developers in singapore,website designer singapore,web design company singapore