Implementierung der PHP-Sicherheitsüberprüfung mit Laravel Passport

王林
Freigeben: 2023-07-25 21:34:01
Original
1415 Leute haben es durchsucht

Verwenden Sie Laravel Passport, um die PHP-Sicherheitsüberprüfung zu implementieren

Einführung:
In der modernen Webentwicklung sind Benutzerauthentifizierung und -autorisierung sehr wichtige Sicherheitsfunktionen. Laravel Passport ist ein OAuth2-basiertes Authentifizierungstool, mit dem wir Benutzerauthentifizierungs- und Autorisierungsfunktionen einfach implementieren können. In diesem Artikel wird erläutert, wie Sie mithilfe von Laravel Passport eine sichere Authentifizierung in PHP implementieren.

Schritte:

  1. Laravel Passport installieren
    Stellen Sie zunächst sicher, dass das Laravel-Framework installiert ist. Geben Sie als Nächstes das Projektverzeichnis im Terminal ein und führen Sie den folgenden Befehl aus, um das Laravel Passport-Paket zu installieren:

    composer require laravel/passport
    Nach dem Login kopieren

    Führen Sie nach erfolgreicher Installation den folgenden Befehl aus, um die für das Paket erforderlichen Dateien und Datenbankmigrationen zu veröffentlichen:

    php artisan passport:install
    Nach dem Login kopieren
  2. Configure Passport
    Öffnen Sie die Datei config/app.php und fügen Sie die folgenden Dienstanbieter im Array providers hinzu: config/app.php 文件,在 providers 数组中添加以下服务提供者:

    LaravelPassportPassportServiceProvider::class,
    Nach dem Login kopieren

    然后,在 app/Http/Kernel.php 文件中的 $routeMiddleware 数组中,添加以下中间件:

    'client' => LaravelPassportHttpMiddlewareCheckClientCredentials::class,
    Nach dem Login kopieren

    最后,在 app/User.php 文件中添加 PassportHasApiTokens trait:

    use LaravelPassportHasApiTokens;
    Nach dem Login kopieren

    并在类的 trait 数组中引入:

    use HasApiTokens;
    Nach dem Login kopieren

    现在,我们已经成功配置了 Laravel Passport。

  3. 创建用户认证接口
    首先,我们需要创建一个控制器来处理用户认证请求。可以执行以下命令来生成一个新的控制器:

    php artisan make:controller AuthController
    Nach dem Login kopieren

    然后,在 AuthController 中添加以下方法来处理注册和登录请求:

    use IlluminateHttpRequest;
    use IlluminateSupportFacadesAuth;
    
    class AuthController extends Controller
    {
     public function register(Request $request)
     {
         // 验证请求数据
         $request->validate([
             'name' => 'required|unique:users',
             'email' => 'required|email|unique:users',
             'password' => 'required|min:6'
         ]);
    
         // 创建用户
         $user = User::create([
             'name' => request('name'),
             'email' => request('email'),
             'password' => bcrypt(request('password')),
         ]);
    
         // 生成访问令牌
         $token = $user->createToken('accessToken')->accessToken;
    
         // 返回响应
         return response()->json(['token' => $token], 200);
     }
    
     public function login(Request $request)
     {
         // 验证请求数据
         $credentials = request(['email', 'password']);
    
         // 检查用户凭据
         if (!Auth::attempt($credentials)) {
             return response()->json(['message' => 'Unauthorized'], 401);
         }
    
         // 获取当前用户
         $user = $request->user();
    
         // 生成访问令牌
         $token = $user->createToken('accessToken')->accessToken;
    
         // 返回响应
         return response()->json(['user' => $user, 'token' => $token], 200);
     }
    }
    Nach dem Login kopieren
  4. 创建路由
    打开 routes/api.php 文件,并添加以下路由:

    Route::post('register', 'AuthController@register');
    Route::post('login', 'AuthController@login')->middleware('client');
    Nach dem Login kopieren
  5. 使用 Passport 守卫
    打开 config/auth.php 文件,并将 api 守卫的驱动更改为 passport

    'guards' => [
     'api' => [
         'driver' => 'passport',
         'provider' => 'users',
     ],
    ],
    Nach dem Login kopieren
  6. 使用认证用户
    现在,我们可以使用 auth:api 中间件来验证用户身份并保护相关的 API 路由。例如,在 AuthController 中,可以添加以下路由:

    public function profile()
    {
     $user = Auth::user();
    
     return response()->json(['user' => $user], 200);
    }
    Nach dem Login kopieren

    然后,在 routes/api.php 中,添加以下路由:

    Route::get('profile', 'AuthController@profile')->middleware('auth:api');
    Nach dem Login kopieren

    这样,在访问 /api/profilerrreee

    Dann in app/Http/Kernel. php Fügen Sie im Array $routeMiddleware in der Codedatei die folgende Middleware hinzu:
  7. rrreee
Fügen Sie abschließend Passportin der Datei app/User hinzu. php-Datei >s HasApiTokens-Merkmal:

rrreee
und im trait-Array der Klasse eingeführt:

rrreee🎜Jetzt haben wir Laravel Passport erfolgreich konfiguriert. 🎜🎜🎜🎜Benutzerauthentifizierungsschnittstelle erstellen🎜Zuerst müssen wir einen Controller erstellen, um Benutzerauthentifizierungsanfragen zu verarbeiten. Sie können den folgenden Befehl ausführen, um einen neuen Controller zu generieren: 🎜rrreee🎜 Fügen Sie dann die folgende Methode in AuthController hinzu, um Registrierungs- und Anmeldeanfragen zu verarbeiten: 🎜rrreee🎜🎜🎜Routen erstellen 🎜Routen öffnen /api.php-Datei und fügen Sie die folgenden Routen hinzu: 🎜rrreee🎜🎜🎜Passport Guard verwenden 🎜Öffnen Sie die config/auth.php-Datei und fügen Sie die api hinzu Guard Der Treiber wurde in passport geändert: 🎜rrreee🎜🎜🎜Authentifizierung von Benutzern verwenden🎜Jetzt können wir die auth:api-Middleware verwenden, um Benutzer zu authentifizieren und zugehörige API-Routen zu schützen. Beispielsweise können Sie in AuthController die folgende Route hinzufügen: 🎜rrreee🎜 Dann fügen Sie in routes/api.php die folgende Route hinzu: 🎜rrreee🎜Auf diese Weise Beim Zugriff auf /api/profile wird der Benutzer zunächst aufgefordert, ein gültiges Authentifizierungstoken anzugeben. 🎜🎜🎜🎜Zusammenfassung: 🎜Dieser Artikel beschreibt, wie Sie Laravel Passport verwenden, um die PHP-Sicherheitsüberprüfung zu implementieren. Durch die Installation und Konfiguration von Laravel Passport können wir Benutzerauthentifizierungs- und Autorisierungsfunktionen schnell implementieren und unsere API-Routen schützen. Hoffentlich ist dieser Artikel für Entwickler hilfreich, die Laravel Passport zur Authentifizierung verwenden. 🎜

Das obige ist der detaillierte Inhalt vonImplementierung der PHP-Sicherheitsüberprüfung mit Laravel Passport. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!