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/
我是网络服务的初学者。我必须使用 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/