所以,最后我回答了我自己的问题。希望这会帮助面临类似问题的人。
JWT认证可以使用Laravel 5.3护照,只要按照下面的步骤来完成:
描述或请按照下列步骤操作:
- 作曲家需要laravel /护照
- add
Laravel\Passport\PassportServiceProvider::class,
给您的应用程序提供商
- PHP工匠迁移
- PHP工匠护照:安装
- 添加
HasApiTokens
性状您的用户模型
- 护照::路线();在AppServiceProvider
- 配置API司机护照
完成后,创建一个UserController中,并添加了以下方法:
public function auth(Request $request)
{
$params = $request->only('email', 'password');
$username = $params['email'];
$password = $params['password'];
if(\Auth::attempt(['email' => $username, 'password' => $password])){
return \Auth::user()->createToken('my_user', []);
}
return response()->json(['error' => 'Invalid username or Password']);
}
public function index(Request $request)
{
return $request->user();
}
在路由/ api.php,添加以下路线:
Route::post('auth', '[email protected]');
Route::group(['middleware' => 'auth:api'], function(){
Route::resource('user', '[email protected]');
});
现在使用电子邮件地址和密码发送POST请求到http://localhost:8000/auth
,如屏幕截图所示(http://pix.toile-libre.org/upload/original/1483094937.png),这将让你的的accessToken,您可以使用此标记,使您的应用程序与Authorization
头和Bearer XXX
其中xxx为的accessToken你/API/AUTH端点收到的其他请求。
现在,使用Authorization
标头和令牌值向/api/user
发送GET请求,这将返回经过身份验证的用户的详细信息。 (如:http://pix.toile-libre.org/upload/original/1483095018.png)
我也贴在我的博客这些步骤http://chatterjee.pw/larvel-passport-jwt-authentication/
我希望这有助于!
我们可以制作自定义标记吗?不是来自用户的对象 –
感谢您的分享,但: 1.没有refresh_token 2.我没有在这里找到任何JWT相关人员,它只是access_token 3.我不明白为什么你花了这么多在此,它是“HasApiTokens”特性的“Auth”和“createToken()”方法的“attempt()”方法 –
此令牌解决方案绝对不是JWT,因此不是您原始问题的答案,这个问题和答案误导别人。由于此处的问答,浪费了大量时间,认为这是JWT解决方案。 –