Heim  >  Artikel  >  PHP-Framework  >  So verwenden Sie das Hyperf-Framework für die domänenübergreifende Verarbeitung

So verwenden Sie das Hyperf-Framework für die domänenübergreifende Verarbeitung

王林
王林Original
2023-10-20 10:36:181554Durchsuche

So verwenden Sie das Hyperf-Framework für die domänenübergreifende Verarbeitung

So verwenden Sie das Hyperf-Framework für die domänenübergreifende Verarbeitung

Domänenübergreifend bedeutet, dass der Browser beim Anfordern von Ressourcen vom Server der Same-Origin-Richtlinie folgt, um die Sicherheit der Benutzerdaten zu schützen. Die Same-Origin-Richtlinie erfordert, dass der Browser Anfragen nur an Server mit demselben Domänennamen, demselben Port und demselben Protokoll senden kann. In einigen Fällen muss unsere Anwendung jedoch möglicherweise Ressourcen von Servern mit unterschiedlichen Domänennamen anfordern, was eine domänenübergreifende Verarbeitung erfordert.

Hyperf ist ein leistungsstarkes PHP-Framework auf Basis von Swoole, das leistungsstarke Skalierbarkeit und Entwicklungseffizienz bietet. Im Folgenden wird die Durchführung einer domänenübergreifenden Verarbeitung im Hyperf-Framework vorgestellt und spezifische Codebeispiele gegeben.

  1. Middleware ändern
    In Hyperf können wir domänenübergreifende Anforderungen über Middleware bearbeiten. Zuerst müssen wir eine neue Middleware erstellen, um domänenübergreifende Anfragen zu verarbeiten. Erstellen Sie eine Datei mit dem Namen CorsMiddleware.php im Verzeichnis app/Middleware und schreiben Sie dann den folgenden Code in die Datei:
<?php

declare(strict_types=1);

namespace AppMiddleware;

use HyperfHttpMessageStreamSwooleStream;
use PsrHttpMessageResponseInterface;
use PsrHttpMessageServerRequestInterface;
use PsrHttpServerMiddlewareInterface;
use PsrHttpServerRequestHandlerInterface;

class CorsMiddleware implements MiddlewareInterface
{
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        $response = $handler->handle($request);
        // 设置允许跨域的域名,* 表示允许任意域名跨域
        $response = $response->withHeader('Access-Control-Allow-Origin', '*');
        // 设置允许的请求方法
        $response = $response->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
        // 设置允许的请求头
        $response = $response->withHeader('Access-Control-Allow-Headers', 'Content-Type,Authorization');
        // 设置是否允许带认证信息(例如cookie)的请求
        $response = $response->withHeader('Access-Control-Allow-Credentials', 'true');
        // 设置预检请求的缓存时间(秒)
        $response = $response->withHeader('Access-Control-Max-Age', '3600');
        return $response;
    }
}
  1. Middleware registrieren
    Damit die Middleware wirksam wird, müssen wir sie in der globalen Middleware-Liste Middle registrieren . Öffnen Sie die Datei config/autoload/middlewares.php, suchen Sie das Array $middlewares und fügen Sie CorsMiddleware::class am Anfang des Arrays hinzu:
<?php

declare(strict_types=1);

return [
    'http' => [
        AppMiddlewareCorsMiddleware::class,
        // 其他中间件...
    ],
];
  1. Routing konfigurieren
    Zuletzt müssen wir die Verarbeitung von OPTIONS-Anfragen hinzufügen die Streckenführung. Öffnen Sie die Datei config/routes.php und fügen Sie den folgenden Code zur Routendefinition hinzu:
<?php

use HyperfHttpServerRouterRouter;

Router::addRoute(['OPTIONS'], '/{path:.+}', function () {
    return '';
});

Dieser Code fängt alle OPTIONS-Anfragen ab und gibt eine leere Antwort zurück.

Zu diesem Zeitpunkt haben wir die domänenübergreifende Verarbeitung im Hyperf-Framework abgeschlossen. Jetzt kann unsere Anwendung Anfragen von jedem Domainnamen empfangen und die entsprechenden Daten zurückgeben.

Zusammenfassung:
Durch die oben genannten Schritte verstehen wir, wie eine domänenübergreifende Verarbeitung im Hyperf-Framework durchgeführt wird. Zunächst haben wir eine Middleware erstellt, um die relevanten Anforderungsheaderinformationen festzulegen, die domänenübergreifende Anforderungen ermöglichen. Anschließend haben wir die Middleware in der globalen Middleware-Liste registriert und die Verarbeitung von OPTIONS-Anfragen konfiguriert. Auf diese Weise kann unsere Anwendung reibungslos domänenübergreifende Anfragen stellen.

Es wurden Codebeispiele bereitgestellt, die Sie entsprechend Ihren tatsächlichen Anforderungen ändern und erweitern können. Die hohe Leistung und Flexibilität des Hyperf-Frameworks ermöglichen uns die einfache Entwicklung verschiedener Funktionen, einschließlich der domänenübergreifenden Verarbeitung. Ich hoffe, dieser Artikel ist für alle hilfreich.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie das Hyperf-Framework für die domänenübergreifende Verarbeitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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