ホームページ > PHPフレームワーク > Laravel > laravelはアプリ側ログインを実装します

laravelはアプリ側ログインを実装します

王林
リリース: 2023-05-26 11:43:07
オリジナル
1033 人が閲覧しました

スマートフォンアプリケーションの増加に伴い、モバイルアプリケーション開発の需要は日々増加しており、ユーザーログインはユーザー情報のセキュリティを保護するだけでなく、モバイルアプリケーションにおいて非常に重要な機能の1つとなっています。さまざまなデバイス上で情報にすばやくアクセスできるため、ユーザーの利便性も向上します。 Laravel は、開発者が APP 側のログイン機能を含むアプリケーションのさまざまな機能を実装するのに役立つ多くの組み込み関数と拡張パッケージを提供する人気の PHP フレームワークです。この記事ではLaravelを使ってAPPログイン機能を実装する方法を紹介します。

1. Laravel のインストールと設定

Laravel で APP ログイン機能を実装する前に、Laravel 環境のインストールと設定を行う必要があります。まず、Composer ツール (https://getcomposer.org/) がインストールされていることを確認します。次に、次のコマンドを実行して、Laravel をコンピューターにインストールします。

composer create-project --prefer-dist laravel/laravel myapp
ログイン後にコピー

ここで、「myapp」は、作成する Laravel アプリケーションの名前です。

インストールが完了したら、myapp ディレクトリに入り、次のコマンドを実行してローカル開発サーバーを起動できます。

php artisan serve
ログイン後にコピー

http://localhost:8000 にアクセスして、Laravel のウェルカム ページを参照してください。次に、APP 側でログイン機能をサポートするために、Passport 拡張パッケージをインストールして構成する必要があります。

次のコマンドを実行して Passport 拡張パックをインストールします:

composer require laravel/passport
ログイン後にコピー

インストールが完了したら、次のコマンドを実行して必要な Passport キーを生成します:

php artisan passport:keys
ログイン後にコピー

次に、次のコマンドを実行します Passport データベース移行を生成するには:

php artisan migrate
ログイン後にコピー

2. APP ログイン機能を実装します

  1. ユーザー モデルとコントローラーを作成します

まず、アプリケーションがユーザーを管理できるように、ユーザー モデルを作成する必要があります。次のコマンドを実行して、User という名前のモデルを作成します。

php artisan make:model User
ログイン後にコピー

次に、AuthController という名前のコントローラーを作成し、その中に次のコードを追加します。

<?php

namespace AppHttpControllers;

use AppModelsUser;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;
use Validator;

class AuthController extends Controller
{
    public function register(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required',
        ]);

        if ($validator->fails()) {
            return response()->json(['error' => $validator->errors()], 401);
        }

        $user = new User;
        $user->name = $request->name;
        $user->email = $request->email;
        $user->password = bcrypt($request->password);
        $user->save();

        $token = $user->createToken('MyApp')->accessToken;

        return response()->json(['token' => $token], 200);
    }

    public function login(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'email' => 'required|email',
            'password' => 'required',
        ]);

        if ($validator->fails()) {
            return response()->json(['error' => $validator->errors()], 401);
        }

        $credentials = $request->only('email', 'password');

        if (Auth::attempt($credentials)) {
            $user = Auth::user();
            $token = $user->createToken('MyApp')->accessToken;
            return response()->json(['token' => $token], 200);
        } else {
            return response()->json(['error' => 'Unauthorized'], 401);
        }
    }
}
ログイン後にコピー

上記のコードでは、 register メソッドによりユーザーが許可されます。を登録し、ログイン方法を使用してユーザーがログインできるようにします。ユーザーが正常に登録またはログインすると、アクセス トークンが返され、後続のユーザー要求に使用されます。

  1. API ルートの作成

次に、ユーザーのログインおよび登録リクエストを処理するために、対応する API ルートを作成する必要があります。 Routes/api.php ファイルに、次のコードを追加します。

<?php

use IlluminateHttpRequest;
use IlluminateSupportFacadesRoute;
use AppHttpControllersAuthController;

Route::post('/register', [AuthController::class, 'register']);
Route::post('/login', [AuthController::class, 'login']);
ログイン後にコピー

上記のコードは、登録リクエストとログイン リクエストを AuthController コントローラの対応するメソッドにマップします。

3. ログイン関数をテストする

すべてのコードの準備ができたので、次の URL にアクセスしてログイン関数と登録関数をテストできます。

  • POST /api/register

    • 新しいユーザーを登録します。パラメータ: 名前、電子メール、パスワード。
  • POST /api/login

    • ユーザー ログインを実行します。パラメータ: 電子メール、パスワード。

#ユーザーがログインに成功すると、トークンが返されます。このトークンは、ユーザーを認証するための後続の API リクエストの作成に使用できます。

$token = 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImZlYTcwMDU3NzhlZWUyMTU3MzliNTM3ODQyNTI0NWJiMGM5YjA3ZWIyMWNlMDhhMDM5ODUyYjczMzVjNWE1NjJlN2UwMGU4ZTQ5MjhhNzg1In0.eyJhdWQiOiIxMSIsImp0aSI6ImZlYTcwMDU3NzhlZWUyMTU3MzliNTM3ODQyNTI0NWJiMGM5YjA3ZWIyMWNlMDhhMDM5ODUyYjczMzVjNWE1NjJlN2UwMGU4ZTQ5MjhhNzg1IiwiaWF0IjoxNjMwMzkwNTM3LCJuYmYiOjE2MzAzOTA1MzcsImV4cCI6MTYzMDM5NDAzNywiZGF0YSI6eyJ1c2VyIjp7ImlkIjoiMSJ9fX0.XsIFsVCc3N1oZ70vzWn4wHQSv3Q-JVdlfu4LJkUPL0he_53bpgJrq5jw8mHygB-1-kpq62N7eG_r08fXKkmbiqeITmUiaGKa0prKzXCoexuYKuxYqG8j-HY2UyDp5g_TE6M4eW5FrcDpTJ0WcQ5ShDhdszUFQUH_qR52ypeEUmsF6CFwx1YJt4AmCFEy2CjsKOMl9K9o0mV_ytvBZ9drY6w6HTRfYfU7q5yuM-W3Qp6bbS-ljzY_2M0RWzwZJm6QvO3Byjhw1TNUrPHFs6xGlY4M7zgkDZxas5srQgpFjKof2LztN7QAJaiT_d6XAKpS24JA2-v2U7x3g';
$response = $this->withHeaders([
    'Authorization' => $token,
])->json('GET', '/api/user');
ログイン後にコピー

この例では、トークンを使用して GET リクエストを /api/user に送信し、ユーザーの情報を返します。ログインが失敗した場合、API は 401 エラー コードを返します。ログインに成功すると、ユーザーの情報が返されます。

Laravel の Passport 拡張パッケージを使用して、APP 側でログイン機能を実装するのは非常に簡単で、対応する拡張パッケージをインストールして設定するだけです。この記事では、Laravel を使用して完全な APP 側ログイン機能を完成させ、ユーザーの素早いログインとセキュリティ保護を実現する方法を示します。

以上がlaravelはアプリ側ログインを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート