Kaip įdiegti el. pašto patvirtinimą kelių nuomininkų „Laravel“ naudojant Nuxt.js

Kaip įdiegti el. pašto patvirtinimą kelių nuomininkų „Laravel“ naudojant Nuxt.js
Kaip įdiegti el. pašto patvirtinimą kelių nuomininkų „Laravel“ naudojant Nuxt.js

El. pašto patvirtinimas kelių nuomininkų programoje

Šiame vadove išnagrinėsime el. pašto patvirtinimo diegimo procesą kelių nuomininkų Laravel programoje su Nuxt.js sąsaja. Tinkamo el. pašto patvirtinimo užtikrinimas yra labai svarbus siekiant išlaikyti vartotojo saugumą ir duomenų vientisumą.

Aptarsime veiksmus, reikalingus norint sukonfigūruoti jūsų „Laravel“ vidinę sistemą daugialypei nuomai, išsiųsime patvirtinimo el. laiškus naudotojui užsiregistravus ir sklandžiai atliksime patvirtinimo procesą. Vadovaudamiesi šiuo vadovu galėsite efektyviai valdyti el. pašto patvirtinimą kelių nuomininkų architektūroje.

komandą apibūdinimas
Tenant::create() Sukuria naują nuomininko egzempliorių nurodytu pavadinimu, naudojamą kelių nuomininkų programoms.
Artisan::call() Programiškai vykdo „Artisan“ komandas, čia naudojama duomenų bazei pradėti nuomininko kontekste.
event(new Registered($user)) Suaktyvina registruotą įvykį, kad naujai sukurtam vartotojui būtų išsiųstas patvirtinimo el.
$tenant->$tenant->run() Vykdo atgalinio skambinimo funkciją nuomininko duomenų bazės jungtyje, išskirdama nuomininkui būdingas operacijas.
$tenant->domains()->$tenant->domains()->create() Susieja naują domeną su sukurtu nuomininku, palengvinant domeno nuomininko identifikavimą.
hash_equals() Palygina dvi maišos vertes saugiu atakos laiku, naudojamas el. pašto patvirtinimo žetonams patikrinti.
User::markEmailAsVerified() Pažymi vartotojo el. paštą kaip patvirtintą ir atnaujina atitinkamą duomenų bazės stulpelį.
app(VerifyEmailResponse::class) Grąžina atsakymą, nurodantį el. pašto patvirtinimo būseną, naudojamą el. pašto patvirtinimo procese.
AuthorizationException Atmetamas, kai nepavyksta atlikti prieigos teisės patikrinimo, užtikrinant, kad būtų apdorojamos tik galiojančios el. pašto patvirtinimo užklausos.

El. pašto patvirtinimo eigos paaiškinimas

Pirmasis scenarijus parodo, kaip tvarkyti vartotojo registraciją kelių nuomininkų Laravel programoje, integruotoje su Nuxt.js. Kai vartotojas užsiregistruoja, naujas nuomininkas sukuriamas naudojant Tenant::create() komandą. Nuomininko kontekste duomenų bazė yra įtraukta į pradinius duomenis per Artisan::call() komandą. Tada sukuriamas naujas vartotojas ir event(new Registered($user)) komanda suaktyvina patvirtinimo el. laiško siuntimą. Šis procesas užtikrina, kad kiekvienas nuomininkas veiktų atskirai, išlaikydamas duomenų vientisumą ir atskyrimą.

Antrasis scenarijus tvarko el. pašto patvirtinimo procesą. Kai vartotojas spusteli patvirtinimo nuorodą, User::findOrFail($request->route('id')) komanda nuskaito vartotoją pagal ID. El. pašto patvirtinimo maiša tikrinama naudojant hash_equals(), užtikrinant saugumą. Jei maiša atitinka, vartotojo el. pašto adresas pažymimas kaip patvirtintas User::markEmailAsVerified(), ir event(new Verified($user)) komanda suaktyvina bet kokius tolesnius veiksmus. Šis scenarijus veikia nereikalaujant, kad vartotojas būtų prisijungęs, o tai užtikrina sklandų patikrinimą.

El. pašto patvirtinimo įdiegimas Laravel su Nuxt.js, skirtas kelių nuomininkų programoms

Laravel Backend scenarijus, skirtas vartotojo registracijai ir el. pašto patvirtinimui

<?php
namespace App\Http\Controllers;
use App\Models\User;
use App\Models\Tenant;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Hash;
use Illuminate\Auth\Events\Registered;
class AuthController extends Controller {
public function register(Request $request) {
    $tenant = Tenant::create(['name' => $request->first_name . ' Team']);
    $tenant->run(function () use ($request) {
        Artisan::call('db:seed', ['--class' => 'DatabaseSeeder']);
        $user = User::create([
            'first_name' => $request->first_name,
            'last_name' => $request->last_name,
            'email' => $request->email,
            'password' => Hash::make($request->password),
            'phone_number' => $request->phone_number,
        ]);
        event(new Registered($user));
    });
    $tenant->domains()->create(['domain' => $request->domain_name]);
    return response()->json(['message' => 'Successfully created - Check your email to verify!']);
}
}

El. pašto patvirtinimo tvarkymas be prisijungimo reikalavimo

Laravel valdiklis el. pašto patvirtinimui

<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Auth\Events\Verified;
use Illuminate\Auth\Access\AuthorizationException;
use Laravel\Fortify\Contracts\VerifyEmailResponse;
class VerifyEmailController extends Controller {
    public function __invoke(Request $request) {
        $user = User::findOrFail($request->route('id'));
        if (!hash_equals(sha1($user->getEmailForVerification()), (string) $request->route('hash'))) {
            throw new AuthorizationException;
        }
        if ($user->hasVerifiedEmail()) {
            return app(VerifyEmailResponse::class);
        }
        if ($user->markEmailAsVerified()) {
            event(new Verified($user));
        }
        return app(VerifyEmailResponse::class);
    }
}

Pašto patvirtinimas be vartotojo prisijungimo

Svarbus el. pašto patvirtinimo aspektas kelių nuomininkų „Laravel“ programoje yra užtikrinti, kad procesas vyktų sklandžiai, nereikalaujant, kad vartotojas būtų prisijungęs. Tai galima pasiekti tinkinant patvirtinimo srautą, kad būtų apeiti prisijungimo reikalavimai. El. pašto patvirtinimo nuorodoje yra unikali maiša, o kai vartotojas spusteli nuorodą, programa patikrina šią maišą, kad užtikrintų užklausos autentiškumą.

Įdiegę pasirinktinį valdiklį el. pašto patvirtinimui tvarkyti, pvz., VerifyEmailController, galite valdyti patvirtinimo logiką neįgyvendindami vartotojo autentifikavimo. Šis metodas pagerina naudotojo patirtį, nes leidžia jiems patvirtinti savo el. pašto adresą tiesiai iš el. pašto nuorodos, o tai užtikrina sklandesnį ir patogesnį procesą.

Dažni klausimai apie el. pašto patvirtinimą kelių nuomininkų „Laravel“ programose

  1. Kaip sukurti naują nuomininką Laravel?
  2. Galite sukurti naują nuomininką naudodami Tenant::create() komandą.
  3. Koks yra duomenų bazės pradėjimo tikslas kuriant nuomininką?
  4. Duomenų bazės sėjimas su Artisan::call('db:seed') inicijuoja nuomininko duomenis.
  5. Kaip suaktyvinamas el. pašto patvirtinimo įvykis?
  6. El. pašto patvirtinimo įvykis suaktyvinamas naudojant event(new Registered($user)) komandą.
  7. Kodėl el. pašto patvirtinimui naudoti hash_equals()?
  8. The hash_equals() komanda suteikia saugų būdą palyginti patvirtinimo žetonus.
  9. Ar el. pašto patvirtinimas gali veikti be vartotojo prisijungimo?
  10. Taip, tinkindami tikrinimo eigą naudodami tokį valdiklį kaip VerifyEmailController.
  11. Kaip pažymėti el. laišką kaip patvirtintą?
  12. Naudoti User::markEmailAsVerified() komandą, kad atnaujintumėte patvirtinimo būseną.
  13. Kas nutinka patvirtinus el. laišką?
  14. Įvykis suaktyvinamas naudojant event(new Verified($user)) tolesniems veiksmams.
  15. Kaip tvarkyti patvirtinimo klaidas?
  16. Mesti an AuthorizationException valdyti netinkamus bandymus patvirtinti.
  17. Ar kiekvienam nuomininkui būtina priskirti domeną?
  18. Taip, domenas susiejamas su $tenant->domains()->create() padeda atpažinti nuomininkus.

El. pašto patvirtinimo užbaigimas kelių nuomininkų programose

El. pašto patvirtinimo įdiegimas kelių nuomininkų „Laravel“ programoje su „Nuxt.js“ sąsaja yra labai svarbus norint išlaikyti vartotojo saugumą ir duomenų vientisumą. Kurdami pasirinktinius valdiklius ir naudodami integruotas Laravel funkcijas, galite užtikrinti sklandų patvirtinimo procesą. Šis metodas leidžia vartotojams patvirtinti savo paskyras tiesiogiai naudojant patvirtinimo nuorodą, neprisijungiant, o tai pagerina bendrą vartotojo patirtį. Atlikę nurodytus veiksmus ir pavyzdžius, galite efektyviai valdyti el. pašto patvirtinimą kelių nuomininkų programoje, užtikrindami patikimą ir saugią sistemą.