라라벨 비밀번호 없는 인증
위는 Passwordless 인증 흐름의 아키텍처 다이어그램입니다.
이 laravel 패키지laravel-passwordless-authentication를 사용하여 인증을 위해 사용자의 이메일 주소에 매직 링크를 전송하여 암호 없는 인증을 구현합니다.
설치
새로운 Laravel 애플리케이션 설정
composer create-project laravel/laravel passwordless-app
스캐폴드 빠른 UI에 설치Laravel Breeze
composer require laravel/breeze --dev
php artisan breeze:install
php artisan migrate
npm install
npm run dev
암호 없는 패키지를 설치하고 지침에 따라 패키지를 설정하십시오.
composer require norbybaru/passwordless-auth
php artisan vendor:publish --provider="NorbyBaru\Passwordless\PasswordlessServiceProvider" --tag="passwordless-config"
php artisan vendor:publish --provider="NorbyBaru\Passwordless\PasswordlessServiceProvider" --tag="passwordless-migrations"
php artisan migrate
1. 메일 드라이버 설정
mailtrap.io으로 메일 드라이버를 설정합니다. 아래 값을 .env에 복사하고
MAIL_USERNAME
및 MAIL_PASSWORD
를 mailtrap.io의 올바른 자격 증명으로 바꿉니다.MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="${APP_NAME}"
2. 사용자 모델 설정
모델에서
CanUsePasswordlessAuthenticatable::class
를 확장하고 PasswordlessAuthenticatable::class
를 구현하여 laravel-passwordless-authentication 패키지와 함께 작동하도록 사용자 모델을 설정합니다.<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
use NorbyBaru\Passwordless\CanUsePasswordlessAuthenticatable;
use NorbyBaru\Passwordless\Traits\PasswordlessAuthenticatable;
class User extends Authenticatable implements CanUsePasswordlessAuthenticatable
{
use HasApiTokens, HasFactory, Notifiable, PasswordlessAuthenticatable;
...
}
3. 로그인 양식
사용자의 이메일 주소만 식별자로 캡처하여 로그인에 매직 링크를 보내도록 로그인 양식을 업데이트하십시오.
4. 로그인 경로
routes/auth.php
에서 로그인 경로를 업데이트하여 이메일 주소를 요구하고 laravel-passwordless-authentication 패키지를 사용하여 매직 링크 토큰을 보냅니다.Route::post('login', function (Request $request) {
$validated = $request->validate([
'email' => 'required|email|exists:users|max:255',
]);
$status = Passwordless::magicLink()->sendLink($validated);
return redirect()->back()->with([
'status' => trans($status)
]);
});
5. 번역 업데이트
사용자에게 매직 링크를 보내는 응답 상태에 따라 사용자에게 올바른 메시지를 다시 표시하려면 다음 값을 사용하여 변환 디렉터리
passwordless.php
아래에 파일lang/en/passwordless.php
을 추가합니다.<?php
return [
'sent' => 'Login link sent to inbox.',
'throttled' => 'Login link was already sent. Please check your inbox or try again later.',
'invalid_token' => 'Invalid link supplied. Please request new one.',
'invalid_user' => 'Invalid user info supplied.',
'verified' => 'Login successful.',
];
최종 단계
애플리케이션을 시작하고 로그인 흐름을 테스트하기 위해 더미 사용자를 생성하거나 시드해야 합니다.
Reference
이 문제에 관하여(라라벨 비밀번호 없는 인증), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/norbybaru/laravel-passwordless-authentication-48p3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)