国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目次
ミドルウェア
ホームページ バックエンド開発 PHPチュートリアル Laravel 5 の基礎(chǔ) (12) - 認(rèn)定

Laravel 5 の基礎(chǔ) (12) - 認(rèn)定

Jun 13, 2016 pm 12:17 PM
auth middleware request return

Laravel 5 の基本 (12) - 認(rèn)証

Laravel にはユーザー認(rèn)証システムが付屬しています。routes.php を削除する場合は、

<code>Route::controllers([    'auth' => 'Auth\AuthController',    'password' => 'Auth\PasswordController']);</code>

を追加してください。 php artisan route:list を使用して確認(rèn)してください。ブラウザで /auth/login にアクセスすると、ログイン インターフェースが表示されます。システムのデフォルト app.blade.php にある Google に関する項目をコメントアウトするのが最善です。そうしないと、おかしくなります。

登録、ログインを使用したり、パスワードを忘れたりすることもできます。

実際には送信後にユーザーの登録が失敗しましたが、larave は自動的に /home にジャンプしました。 tinker を使用すると、ユーザーが作成されたかどうかを確認(rèn)できます。

は実際に AuthAuthControllertrait を使用していますが、トライアトとは何ですか? PHP は単一継承のみをサポートしており、トレイトは PHP5.4 で追加されました。トレイトは実際にはメソッドのセットをカプセル化したもので、別のクラスに含めることができます。抽象クラスと同様に、直接インスタンス化することはできません。

AuthAuthController には特性への參照があります:

<code>use AuthenticatesAndRegistersUsers;</code>

それを見つけて、登録後にどのようにジャンプするかを見てみましょう。 vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesAndregistersUsers.phpの中にかなり深く隠してるんですね、すごい。

<code>	public function redirectPath()	{		if (property_exists($this, &#39;redirectPath&#39;))		{			return $this->redirectPath;		}                //如果用戶設(shè)置了 redirectTo 屬性,則跳轉(zhuǎn)到用戶設(shè)置的屬性,否則到home		return property_exists($this, &#39;redirectTo&#39;) ? $this->redirectTo : &#39;/home&#39;;	}</code>

OK、登録後にジャンプをカスタマイズするには、redirectTo 屬性を設(shè)定するだけです。 AuthAuthContotroller を変更します:

<code> protected $redirectTo = &#39;articles&#39;;</code>

最初に /auth/logout を使用して確実に終了します。何か問題が発生しても心配しないでください。デフォルトのホームページはありません。再確認(rèn)してください: auth/register 新しいユーザーを作成します。今回はこれでOKです。

再度ログアウトし、ログインを使用してログインします。

ここで、form_partial に設(shè)定された一時的な非表示フィールドを削除し、コントローラーを変更します。

<code>    public function store(Requests\ArticleRequest $request) {        //你可以這樣        //$request = $request->all();        //$request[&#39;user_id&#39;] = Auth::id();        //更簡單的方法        $article = Article::create($request->all());        //laravel 自動完成外鍵關(guān)聯(lián)        Auth::user()->articles()->save($article);        return redirect(&#39;articles&#39;);    }</code>

記事を追加し、tinker を使用してチェックアウトします。

ミドルウェア

もちろん、少なくともログインする場合に限り、誰でも記事を公開できるようにすることは望ましくありません。コントローラーに保護(hù)を追加します。

<code>    public function create() {        if (Auth::guest()) {            return redirect(&#39;articles&#39;);        }        return view(&#39;articles.create&#39;);    }</code>

上記のコードは機(jī)能しますが、保護(hù)が必要なすべてのメソッドで上記の処理を?qū)g行する必要があります。これはあまりにも愚かです。ミドルウェア。

ミドルウェアは、パイプライン內(nèi)の特定の瞬間に処理される処理パイプラインとして理解できます。この瞬間はリクエストまたはレスポンスになります。ミドルウェアの処理ルールによっては、リクエストがリダイレクトされたり、渡されたりする場合があります。

には、app/http/middleware 內(nèi)に 3 つのミドルウェアが含まれています。詳しく見てみると、Closure $next が次のミドルウェアを表しています。

app/http/kernel.phpにミドルウェアを登録します。 $middleware セクションはすべての http を処理するミドルウェアを宣言し、$routeMiddleware はルーティングのみを処理します。これらのミドルウェアの 1 つ以上を使用することを明示的に宣言する必要があります。

ArticlesController 全體を保護(hù)したいとします。コンストラクターにミドルウェアを直接追加します。

<code>    public function __construct() {        $this->middleware(&#39;auth&#39;);    }</code>

これで、すべてのメソッドが保護(hù)されます。

しかし、おそらくコントローラー全體を保護(hù)することは望ましくありません。そのメソッドの 1 つまたは 2 つだけを保護(hù)する場合はどうでしょうか?次のように処理できます:

<code>    public function __construct() {        $this->middleware(&#39;auth&#39;, [&#39;only&#39; => &#39;create&#39;]);        //當(dāng)然可以反過來        //$this->middleware(&#39;auth&#39;, [&#39;except&#39; => &#39;index&#39;]);    }</code>

必ずしもコントローラーのコンストラクターにミドルウェアを?qū)毪工氡匾悉ⅳ辘蓼护?。ルート內(nèi)で直接宣言できます:

<code>Route::get(&#39;about&#39;, [&#39;middleware&#39; => &#39;auth&#39;, &#39;uses&#39; => &#39;[email&#160;protected]&#39;]);</code>

In kernel.php 'IlluminateFoundationHttpMiddlewareCheckForMaintenanceMode' などの提供されたシステム ミドルウェアを使用すると、たとえば、システムはオンラインですが、処理のために一定期間一時的にシャットダウンする必要がある場合に、メンテナンス モードに入ることができます。コマンドラインを使用して、このミドルウェアの動作を確認(rèn)してください。

<code>php artisan down</code>

Web サイトにアクセスすると、URL リクエストがすぐに返されることがわかります。オンラインのウェブサイト:

<code>php artisan up</code>

獨(dú)自のミドルウェアを作成しましょう:

<code> php artisan make:middleware Demo</code>

次に、コードを追加します:

<code>	public function handle($request, Closure $next)	{        //如果請求中含有 foo,我們就回到控制器首頁        if ($request->has(&#39;foo&#39;)) {            return redirect(&#39;articles&#39;);        }		return $next($request);	}</code>

すべてのリクエストで使用したい場合ミドルウェアは kernel.php$middleware に登録する必要があります:

<code>	protected $middleware = [		...		&#39;App\Http\Middleware\Demo&#39;,	];</code>

これでテストできるようになります。/articles/create?foo=bar にアクセスすると、ホームページにリダイレクトされます。

この表示ミドルウェアを廃止して、実際に役立つミドルウェアを作成しましょう。このページは管理者がアクセスできる必要があるとします。

<code>php artisan make:middleware RedirectIfNotAManager</code>

処理コードを追加しましょう:

<code>	public function handle($request, Closure $next)	{        if (!$request->user() || !$request->user()->isATeamManager()) {            return redirect(&#39;articles&#39;);        }		return $next($request);	}</code>

以下のモデルを変更します:

<code>    public function isATeamManager() {        return false;    }</code>

簡単にするために、直接 false を返します。今回は kernel.php 內(nèi)にミドルウェアを $routeMiddleware 內(nèi)に配置します。

<code>	protected $routeMiddleware = [		...		&#39;manager&#39; => &#39;App\Http\Middleware\RedirectIfNotAManager&#39;,	];</code>

テスト ルートを作成してテストしましょう:

<code>Route::get(&#39;foo&#39;, [&#39;middleware&#39; => &#39;manager&#39;, function() {    return &#39;This page may only be viewed by manager&#39;;}]);</code>

ゲスト ID アクセスまたはログイン ID アクセスはホームページに戻りますが、isATeamManager() を変更すると、 true に戻る、ログイン ID にアクセスして、返された情報を確認(rèn)します。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C言語のreturnの使い方を詳しく解説 C言語のreturnの使い方を詳しく解説 Oct 07, 2023 am 10:58 AM

C 言語における return の使い方は、 1. 戻り値の型が void の関數(shù)については、return 文を使用して関數(shù)の実行を早期に終了することができます; 2. 戻り値の型が void ではない関數(shù)については、 return ステートメントは、関數(shù)の実行を終了するためのものです。結(jié)果は呼び出し元に返されます。 3. 関數(shù)の実行を早期に終了します。関數(shù)內(nèi)で return ステートメントを使用して、関數(shù)の実行を早期に終了することもできます。関數(shù)が値を返さない場合。

PHPリクエストとはどういう意味ですか? PHPリクエストとはどういう意味ですか? Jul 07, 2021 pm 01:49 PM

request の中國語の意味は「要求」で、PHP のグローバル変數(shù)であり、「$_POST」、「$_GET」、「$_COOKIE」を含む配列です。 「$_REQUEST」変數(shù)は、POSTまたはGETで送信されたデータやCOOKIE情報を取得できます。

Javaのreturn文とfinally文の実行順序は何ですか? Javaのreturn文とfinally文の実行順序は何ですか? Apr 25, 2023 pm 07:55 PM

ソースコード: publicclassReturnFinallyDemo{publicstaticvoidmain(String[]args){System.out.println(case1());}publicstaticintcase1(){intx;try{x=1;returnx;}finally{x=3;}}}#出力 上記のコードの出力は、単純に次のように結(jié)論付けることができます:finally の前に return が実行されます。バイトコード レベルで何が起こるかを見てみましょう。以下は、case1 メソッドのバイトコードの一部をインターセプトし、ソース コードを比較して、各命令の意味に注釈を付けます。

Java API開発における認(rèn)証にAuth0を使用する Java API開発における認(rèn)証にAuth0を使用する Jun 18, 2023 pm 05:30 PM

最新のソフトウェア開発において、ID 認(rèn)証は非常に重要なセキュリティ対策です。 Auth0 は ID 認(rèn)証サービスを提供する會社で、開発者が複數(shù)の ID 認(rèn)証方式 (OAuth2、OpenIDConnect など) を迅速に実裝し、安全で信頼性の高い認(rèn)証サービスを提供できるように支援します。この記事では、JavaAPI開発における認(rèn)証にAuth0を使用する方法を紹介します。ステップ 1: Auth0 アカウントを作成し、アプリケーションを登録します。

urllib.request.urlopen() 関數(shù)を使用して Python 3.x で GET リクエストを送信する方法 urllib.request.urlopen() 関數(shù)を使用して Python 3.x で GET リクエストを送信する方法 Jul 30, 2023 am 11:28 AM

Python3.x で urllib.request.urlopen() 関數(shù)を使用して GET リクエストを送信する方法 ネットワーク プログラミングでは、HTTP リクエストを送信してリモート サーバーからデータを取得する必要があることがよくあります。 Python では、urllib モジュールの urllib.request.urlopen() 関數(shù)を使用して、HTTP リクエストを送信し、サーバーから返される応答を取得できます。この記事では使い方を紹介します

Vue3 Axios インターセプターをリクエスト ファイルにカプセル化する方法 Vue3 Axios インターセプターをリクエスト ファイルにカプセル化する方法 May 19, 2023 am 11:49 AM

1. request.js という名前の新しいファイルを作成し、Axios をインポートします: importaxiosfrom'axios'; 2. request という名前の関數(shù)を作成してエクスポートします: これにより、request という名前の関數(shù)が作成され、それがエクスポートされます ベース URL を使用して新しい Axios インスタンスを設(shè)定します。ラップされた Axios インスタンスにタイムアウト設(shè)定を追加するには、Axios インスタンスの作成時にタイムアウト オプションを渡すことができます。 exportconstrequest=axios.create({baseURL:'https://example.

PHPにおけるリクエストとは PHPにおけるリクエストとは Jun 01, 2023 am 10:12 AM

PHP のリクエストはリクエストを指します。これは PHP のスーパー グローバル変數(shù)です。HTML フォームおよび URL のパラメータによって送信されたデータを収集するために使用されます。GET リクエストと POST リクエストから同時にデータを取得できます。$_request は連想配列。ここで、キーはフォーム フィールドの名前、値はフォーム フィールドの値です。 $_request 変數(shù)を使用する場合は、セキュリティの問題を回避するために、ユーザーが入力したデータを常に検証してフィルター処理する必要があります。

PHP の Request オブジェクトとは何ですか? PHP の Request オブジェクトとは何ですか? Feb 27, 2024 pm 09:06 PM

PHP の Request オブジェクトは、クライアントからサーバーに送信される HTTP リクエストを処理するために使用されるオブジェクトです。 Request オブジェクトを通じて、リクエストを処理して応答するために、リクエスト メソッド、リクエスト ヘッダー情報、リクエスト パラメータなどのクライアントのリクエスト情報を取得できます。 PHP では、$_REQUEST、$_GET、$_POST などのグローバル変數(shù)を使用して、要求された情報を取得できますが、これらの変數(shù)はオブジェクトではなく配列です。リクエスト情報をより柔軟かつ便利に処理するために、次のことができます。

See all articles