ホームページ  >  記事  >  PHPフレームワーク  >  Laravelを使ってログインしてジャンプする方法

Laravelを使ってログインしてジャンプする方法

PHPz
PHPzオリジナル
2023-04-19 10:07:50643ブラウズ

Laravel は人気のある PHP 開発フレームワークで、学習が簡単で、開発効率が高く、安全で安定しており、多くの開発者に愛されています。 Laravel では、ログインとジャンプは非常に一般的な操作であり、これらの機能を簡単に実装できます。

ログイン機能は、Web サイトの重要な機能の 1 つであり、ユーザーにプライベートなスペースとより高いレベルのアクセス権を提供します。 Laravelではログイン機能を簡単に実装できます。ここでは、Laravel を使用してログインとジャンプを実装する方法を検討します。

  1. ユーザー認証システムを作成する

まず、ユーザー認証システムを作成する必要があります。 Laravel は既製の認証システムを提供してくれたので、次のコマンドを実行するだけで済みます:

php artisan make:auth

このコマンドは、ログイン、登録、パスワードを忘れた場合などの機能と、対応するビューとコントローラーを自動的に生成します. 私たちの使用のために。

  1. ログイン ビューの作成

次に、ログイン用のビューを作成する必要があります。 Laravel が提供するテンプレート エンジンである Blade を使用してビューを作成できます。 Resources/views/auth フォルダーに login.blade.php ファイルを作成します。コードは次のとおりです:

@extends('layouts.app')

@section('content')

<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">{{ __('Login') }}</div>

                <div class="card-body">
                    <form method="POST" action="{{ route(&#39;login&#39;) }}">
                        @csrf

                        <div class="form-group row">
                            <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>

                            <div class="col-md-6">
                                <input id="email" type="email" class="form-control @error(&#39;email&#39;) is-invalid @enderror" name="email" value="{{ old(&#39;email&#39;) }}" required autocomplete="email" autofocus>

                                @error('email')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>

                            <div class="col-md-6">
                                <input id="password" type="password" class="form-control @error(&#39;password&#39;) is-invalid @enderror" name="password" required autocomplete="current-password">

                                @error('password')
                                    <span class="invalid-feedback" role="alert">
                                        <strong>{{ $message }}</strong>
                                    </span>
                                @enderror
                            </div>
                        </div>

                        <div class="form-group row">
                            <div class="col-md-6 offset-md-4">
                                <div class="form-check">
                                    <input class="form-check-input" type="checkbox" name="remember" id="remember" {{ old(&#39;remember&#39;) ? &#39;checked&#39; : &#39;&#39; }}>

                                    <label class="form-check-label" for="remember">
                                        {{ __('Remember Me') }}
                                    </label>
                                </div>
                            </div>
                        </div>

                        <div class="form-group row mb-0">
                            <div class="col-md-8 offset-md-4">
                                <button type="submit" class="btn btn-primary">
                                    {{ __('Login') }}
                                </button>

                                @if (Route::has('password.request'))
                                    <a href="{{ route(&#39;password.request&#39;) }}">
                                        {{ __('Forgot Your Password?') }}
                                    </a>
                                @endif
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

このビューでは、ブートストラップ スタイルと Laravel が提供するフォーム生成関数を使用して、形状。さらに、クロスサイト リクエスト フォージェリ (CSRF) 攻撃を防ぐために、フォームに @csrf ディレクティブも追加しました。

  1. ログイン リクエストの処理

ログイン フォームの作成後、ログイン リクエストを処理する必要があります。 Laravel が提供する Auth\LoginController クラスのauthenticate() メソッドを使用して、ユーザーの認証情報を確認できます。検証が成功すると、Laravel の redirect() メソッドをジャンプできます。

コードは次のとおりです:

public function authenticate(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        // 认证通过,跳转到指定页面
        return redirect()->intended('dashboard');
    }
    else {
        // 认证失败,跳转到登录页面
        return redirect()->route('login')->with('error', 'Invalid credentials');
    }
}

このコードでは、Auth::attempt() メソッドを使用してユーザーの入力を検証します。

検証に合格した場合は、Laravel のowned() メソッドを使用してジャンプできます。このメソッドはユーザーがアクセスしたいページに自動的にジャンプしますが、ユーザーが指定しない場合はデフォルトで「ダッシュボード」ページにジャンプします。

認証が失敗した場合は、Laravel の redirect() メソッドを使用してユーザーをログイン ページにリダイレクトし、ジャンプ時にエラー メッセージを渡します。

  1. 指定したページにジャンプします

Laravelでは、laravelのRedirectクラスとURLクラスを使ってジャンプすることができます。ルートにリダイレクトしたい場合は、Laravel の redirect() メソッドを使用できます。 URL にリダイレクトしたい場合は、Laravel の URL::to() メソッドを使用できます。

コード例は次のとおりです。

// 重定向到路由
return redirect()->route('dashboard');

// 重定向到URL
return redirect(URL::to('/dashboard'));

このプロセス中、コントローラまたはルーティング ファイルで上記のジャンプ メソッドを自由に使用して、正しいページにジャンプできることに注意してください。

結論

Laravel は、Web 開発を簡素化するための多くのツールと機能を提供する、強力で使いやすい PHP フレームワークです。この記事では、Laravelでユーザーがログインして指定したページにジャンプする処理を実装する方法を説明します。

最初にユーザー認証システムを作成し、次にログイン フォームを作成し、ログイン リクエストを処理し、Redirect クラスと URL クラスを使用してコードにジャンプしました。これらのテクノロジーと方法は、開発者が強力なログイン機能とジャンプ機能を迅速に実装するのに役立ちます。

同時に、セキュリティと安定性が常に非常に重要な問題であることも注目に値します。安定性と安定性を維持するには、コード ベースが厳密にテストされ、最新のセキュリティ標準に準拠していることを確認する必要があります。システムのセキュリティ。

以上がLaravelを使ってログインしてジャンプする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。