Laravel 中的护照是什么?

What is Passport in Laravel?

我是网络服务的初学者。我必须使用 Laravel 为移动应用程序制作 API。在 Laravel 文档中,我得到了 API Authentication (Passport)。我正在尝试了解但不清楚。

有谁能详细说说吗?

提前致谢

API 也称为 Web 服务。

安装 Laravel 中集成的基本身份验证系统并 Laravel 护照:

composer require laravel/passport
php artisan make:auth
php artisan passport:install
php artisan migrate

将 Laravel\Passport\HasApiTokens 特征添加到我们的 App\User 模型中,然后 我们的引导方法中的 Passport::routesmethod app/AuthServiceProvider 那样:

public function boot() {
    $this->registerPolicies();
    Passport::routes();
}

最后将 api 身份验证守卫的 driver 选项设置为 passport,如下所示:

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],

    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ],
],

现在测试 Postman 是否一切正常(您可以使用任何其他 模拟 HTTP 请求的工具)。

注册路由returns一个令牌(因为它会自动记录你) 但我们将使用登录路由重新生成它以检查是否有效 嗯。

通过这种方式,您可以在您的网络应用程序中使用 Laravel Passport

嗯,就是这样:

如果您转到介绍选项卡,您共享的文档有很好的介绍。我想您知道什么是 RESTfull API 吧?如果你不 here。因此,由于 REST APIs 不使用 sessions(在 PHP 中,你知道这一点),所有 API 调用都将是无状态的(session 更少),因此您将需要一种身份验证机制来验证客户端。这就是此身份验证方法的用武之地。此 OAuth 服务专门用于在处理 REST 无状态 sessions 时解决此问题。

假设您听说过代币。当用户稍后注册并登录时,系统会在登录时与数据库核对用户的登录信息。如果用户通过身份验证(用户名和密码匹配),系统将生成令牌。这个令牌有点像 session,但最酷的部分是它位于客户端机器上。所以这有点像留在客户端的 session 细节。在 REST 请求中,令牌将与 header.

一起传递

**

now generating mechanism of token

**

您可能想知道这怎么会是小菜一碟。不,不是,因为现在,假设您有一个包含此数据的 client-side 令牌。

{
   username:"JhonSnow",
   email:"winteriscomming@gmail.com",
   type:"user"
} 

现在首先,此令牌使用 base64url 编码进行加密。好的,现在可以使用 base64 解码器来实现了。但优秀的部分是即使攻击者可以从令牌中获取此信息,他也无法像这样提升应用程序的特权。

type:"user"

`type:"admin"

` 因为这个session-like令牌的完整性可以使用0-auth提供的server-side认证机制来检查,所以这在web开发中很常用并且很流行。现在我详细提到了令牌的结构;这有点复杂。更像这样

header:{
  "alg": "HS256",
  "typ": "JWT"
},
payload:{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

现在使用这些详细信息将生成如下令牌。

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.he0ErCNloe4J7Id0Ry2SEDg09lKkZkfsRiGsdX_vgEg

如果仔细观察,您会看到此令牌中由 2 个“.”(句点)分隔的三个部分,以区分 header、有效负载和签名。最后一部分是服务器将检查服务器的秘密或称为签名的部分,以验证此令牌是否是有效令牌。

今天 API 也称为 Web 服务。当您创建 Web 和移动应用程序开发时,Web 服务非常重要。您需要为您的移动应用程序开发人员创建 API。我们知道 laravel 因为创造了 API 而更受欢迎。但是,如果您是初学者并且不知道什么是 API 和 Web 服务,那么您来对地方了。

什么是护照?

APIs 通常使用令牌对用户进行身份验证并且不维护请求之间的会话状态。 Laravel 使用 Laravel Passport 使 API 身份验证变得轻而易举,它可以在几分钟内为您的 Laravel 应用程序提供完整的 OAuth2 服务器实现。

这里有更多信息

https://mattstauffer.com/blog/introducing-laravel-passport/

http://esbenp.github.io/2017/03/19/modern-rest-api-laravel-part-4/