Laravel 6.2의 사용자 로그인을 위한 새로운 비밀번호 확인 프로세스(코드 예)
Laravel은 로그인한 사용자가 경로에 액세스하기 전에 비밀번호를 다시 입력하도록 요구할 수 있는 새로운 비밀번호 확인 기능을 추가하는 v6.2를 출시했습니다.
이 기능은 민감한 작업을 수행할 때 나타나는 GitHub 확인 대화 상자와 유사합니다. Laravel에서 쉽게 설정할 수 있으므로 작동 방식을 더 잘 이해할 수 있도록 새로운 기능을 시험해 보겠습니다.
Setup
먼저, 이 새로운 기능을 보다 직관적으로 이해하기 위해 새로운 Laravel 애플리케이션을 만듭니다. :
laravel new confirm-app cd confirm-app composer require laravel/ui --dev
아시다시피 Laravel 6에서는 make:auth 명령이 제거되었으며, 동일한 기능이 공식 확장 패키지 laravel/ui로 마이그레이션되었습니다. 새로운 명령을 사용하여 사용자 인증 관련 코드를 생성해 보겠습니다.
php artisan ui vue --auth yarn install yarn dev
다음으로, SQLite 데이터베이스를 구성합니다(물론 사용하려는 데이터베이스를 선택할 수 있습니다):
touch database/database.sqlite
sqlite 드라이버를 사용할 때 Laravel에 필요한 기본 구성 파일을 생성했습니다. 하지만 여전히 필요한 구성 파일은 다음과 같습니다. .env 파일을 업데이트하여 데이터베이스 연결과 경로가 올바른지 확인하세요.
DB_CONNECTION=sqlite # ... # 使用 sqlite 驱动程序的默认路径 # DB_DATABASE=laravel
다음으로 마이그레이션을 실행하고 테스트 사용자를 생성해 보겠습니다.
php artisan migrate
Factory() 메서드를 통해 제어할 수 있습니다. 테스트 사용자:
php artisan tinker >>> $user = factory(App\User::class)->create([ ... 'password' => bcrypt('secret'), ... 'email' => 'admin@example.com' ... ]);
컨트롤러 작성
SSH 키 추가와 같은 관리 작업을 보기 전에 사용자가 비밀번호를 다시 확인하도록 한다고 가정해 보겠습니다. 우리는 사용자가 구성된 기간(기본값은 3시간) 내에 비밀번호를 다시 입력하기를 원합니다.
가짜 /settings/ssh/create 경로를 생성합니다. 여기에는 사용자가 새 키를 생성하기 전에 새 비밀번호.confirm 미들웨어가 필요합니다.
php artisan make:controller Settings/SSHController
다음으로 create() 메소드를 생성합니다. Controller:
namespace App\Http\Controllers\Settings; use App\Http\Controllers\Controller; use Illuminate\Http\Request; class SSHController extends Controller { public function create() { return view('secret'); } }
비밀 템플릿을 스텁하여 보기 경로의 루트 디렉터리에 배치합니다 resources/views/secret.blade.php:
@extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <h1 id="Add-nbsp-a-nbsp-New-nbsp-SSH-nbsp-Key">Add a New SSH Key</h1> <p>This page is only shown after password confirmation.</p> </div> </div> </div> @endsection
Code의 코드에서는 auth/ 파일을 복사해야 합니다. ui/confirm.stub에서 복사할 파일을 가져올 수 있습니다. 이 파일을 복사하여 프로젝트에 추가하세요. 다음 경로는
resources/views/auth/passwords/confirm.blade.php
다음으로 경로를 정의해야 합니다. , Routes/web.php 파일 끝에서 이 미들웨어의 필요성을 언급했습니다:
Route::namespace('Settings') ->middleware(['auth']) ->group(function () { Route::get('/settings/ssh/create', 'SSHController@create')->middleware('password.confirm'); });
참고: 일반적으로 필요한 인증 미들웨어 ID를 모두 전달할 수 있습니다. 이 데모에서는 인증 경로가 함께 집계됩니다.
이를 사용하여 로그인하면 /home으로 리디렉션됩니다. 거기에서 /settings/ssh/create로 이동하면 비밀번호를 입력하라는 메시지가 표시됩니다.
이 튜토리얼을 따랐다면 secret 을 입력하고 양식을 제출한 후 생성 보기로 들어갑니다. 비밀번호를 확인하면 메시지를 표시하지 않고 이 페이지를 새로 고칠 수 있습니다.
새 ddd() 도우미 함수를 사용하여 SSHController::create() 메서드에 추가하면 다음 메시지가 표시될 때 이 메서드가 auth.password_confirmed_at의 세션 값을 결정합니다.
public function create() { ddd(session('auth')); return view('secret'); }
비밀번호가 마지막으로 확인되었습니다. 기본적으로 사용자는 3시간 이내에 비밀번호를 다시 확인하라는 알림을 받지 않습니다. 물론 config('auth.password_timeout') 구성 항목을 수정하여 사용자 정의할 수 있습니다. (구성 항목은 Laravel의 config/auth.에 정의되어 있습니다.) v6.2.0.php 구성 파일).
laravel 프레임워크와 관련된 더 많은 기술 기사를 보려면 laravel 튜토리얼 칼럼을 방문하세요!
위 내용은 Laravel 6.2의 사용자 로그인을 위한 새로운 비밀번호 확인 프로세스(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Laravel 이메일 전송이 실패 할 때 반환 코드를 얻는 방법. Laravel을 사용하여 응용 프로그램을 개발할 때 종종 확인 코드를 보내야하는 상황이 발생합니다. 그리고 실제로 ...

laravel 일정 작업 실행 비 응답 문제 해결 Laravel의 일정 작업 일정을 사용할 때 많은 개발자 가이 문제에 직면합니다 : 스케줄 : 실행 ...

Laravel의 이메일을 처리하지 않는 방법은 LaRavel을 사용하는 것입니다.

DCAT를 사용할 때 DCATADMIN (LARAVEL-ADMIN)에서 데이터를 추가하려면 사용자 정의의 테이블 기능을 구현하는 방법 ...

Laravel 프레임 워크 및 Laravel 프레임 워크 및 Redis를 사용할 때 Redis 연결을 공유하는 데 영향을 줄 수 있습니다. 개발자는 문제가 발생할 수 있습니다. 구성을 통해 ...

Laravel 다중 테넌트 확장 패키지 패키지 패키지 패키지 패키지 Stancl/Tenancy, ...

Laraveleloquent 모델 검색 : 데이터베이스 데이터를 쉽게 얻을 수 있습니다. 이 기사는 데이터베이스에서 데이터를 효율적으로 얻는 데 도움이되는 다양한 웅변 모델 검색 기술을 자세히 소개합니다. 1. 모든 기록을 얻으십시오. 모든 () 메소드를 사용하여 데이터베이스 테이블에서 모든 레코드를 가져옵니다. 이것은 컬렉션을 반환합니다. Foreach 루프 또는 기타 수집 방법을 사용하여 데이터에 액세스 할 수 있습니다 : Foreach ($ postas $ post) {echo $ post->

7 백만 레코드를 효율적으로 처리하고 지리 공간 기술로 대화식지도를 만듭니다. 이 기사는 Laravel과 MySQL을 사용하여 7 백만 개 이상의 레코드를 효율적으로 처리하고 대화식지도 시각화로 변환하는 방법을 살펴 봅니다. 초기 챌린지 프로젝트 요구 사항 : MySQL 데이터베이스에서 7 백만 레코드를 사용하여 귀중한 통찰력을 추출합니다. 많은 사람들이 먼저 프로그래밍 언어를 고려하지만 데이터베이스 자체를 무시합니다. 요구 사항을 충족시킬 수 있습니까? 데이터 마이그레이션 또는 구조 조정이 필요합니까? MySQL이 큰 데이터로드를 견딜 수 있습니까? 예비 분석 : 주요 필터 및 속성을 식별해야합니다. 분석 후, 몇 가지 속성만이 솔루션과 관련이 있음이 밝혀졌습니다. 필터의 타당성을 확인하고 검색을 최적화하기위한 제한 사항을 설정했습니다. 도시를 기반으로 한지도 검색
