我是Web服务的入门者。我必须使用用于移动应用程序的Laravel来制作API。在Laravel文档中,我得到了API Authentication (Passport)。我试图理解这一点,但不清楚。
有人能详细告诉我吗?
预先感谢
答案 0 :(得分:1)
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 :: routes方法 像这样的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请求)。
注册路由返回令牌(因为它会自动记录您的身份) 但是我们将使用登录路径重新生成它,以检查其是否有效 好吧。
通过这种方式,您可以在Web应用程序中使用Laravel Passport
答案 1 :(得分:1)
好吧,这是,
如果进入“简介”选项卡,则在您自己共享的文档中有一个很好的简介。我想您知道RESTfull API对吗?如果您不here。 因此,由于其余API不使用会话(在PHP中您知道这一点),因此所有API调用都将是无状态的(会话较少)。因此,您将需要一种身份验证机制来验证客户端实际上就是他所说的那个人。这就是Authentication方法的用处,该oauth服务专门用于在处理REST无状态会话时与该问题冲突。
这是如果您听说过令牌的情况,那么当用户注册并稍后登录时,登录时,将通过数据库检查该用户的登录详细信息,以及该用户是否如果已通过身份验证(用户名和密码匹配),则将生成一个令牌。此令牌有点像会话,但最酷的部分是它位于客户端计算机上。所以这有点像会话详细信息留在客户端。因此在发出REST请求时,此令牌将与请求中的标头一起传递。
**
现在的令牌生成机制
**
您可能想知道现在这真的很容易被破解。不,不是,因为现在假设您有一个包含此数据的客户端令牌
{
username:"JhonSnow",
email:"winteriscomming@gmail.com",
type:"user"
}
现在,首先使用 base64url 编码对该令牌进行加密。好了,现在可以使用base64解码器了。但是,令人敬畏的是,即使攻击者可以从令牌中获取此信息,他也将无法升级具有这种特权的应用程序
类型:“用户”
到
`type:“ admin”
` 因为可以使用0-auth提供的服务器端身份验证机制来检查此会话(如令牌的完整性),这就是为什么它在Web开发中很普遍且非常流行。 现在我之前提到过令牌的详细结构,这有点复杂。它更像这样
header:{
"alg": "HS256",
"typ": "JWT"
},
payload:{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}
现在使用此详细信息,将生成令牌。.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.he0ErCNloe4J7Id0Ry2SEDg09lKkZkfsRiGsdX_vgEg
如果仔细观察,您会发现此令牌中有3“。”(句点),这是为了区分标头,有效负载和签名,最后一部分是服务器将使用服务器机密对其进行检查的那一部分。或称为验证此令牌的签名是否为有效令牌
答案 2 :(得分:1)
如今,API也被称为Web服务。在创建Web和移动应用程序开发时,Web服务非常重要。您需要为移动应用程序开发人员创建API。众所周知,由于创建API,laravel更受欢迎。但是,如果您是一个入门者,并且不知道什么是API和网络服务,那么您来对地方了。
什么是护照?
API通常使用令牌来验证用户身份,并且不维护请求之间的会话状态。 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/