当前位置: 首页 > 后端技术 > PHP

Laravel使用Passport创建API用户认证

时间:2023-03-29 18:37:47 PHP

本文来自pilishen.com----原文链接;Laravel系统中的一些数据库,尤其是用户数据。现在让我们看一下,使用LaravelPassport组件。我们将创建三个API,分别是:LoginAPIRegisterAPIDetailsAPI(1)安装配置Passportcomposer需要laravel/passport在config/app.php中注册providers:'providers'=>[....Laravel\Passport\PassportServiceProvider::class,]创建Passport需要的数据表:phpartisanmigrate然后初始化Passport,执行:phpartisanpassport:install这个命令会生成一个秘钥,用于后面创建安全令牌(accesstoken),同时也会创建Personal访问和密码授予两个客户端(clients)。接下来,在app/User.php中添加HasApiTokenstrait:,Notifiable;}然后添加Passport::routes();在app/Providers/AuthServiceProvider.php中:registerPolicies();护照::路线();}}将config/auth.php中的api改成passport:[...'api'=>['driver'=>'passport','provider'=>'users',],],.....](2)在你的routes/api.php中创建相应的api路由Route::post('login','API\UserController@login');柔te::post('register','API\UserController@register');Route::group(['middleware'=>'auth:api'],function(){Route::post('details','API\UserController@details');});(三)创建相关的控制器路径app/Http/Controllers/API/UserController.phprequest('email'),'password'=>request('password')])){$user=Auth::user();$success['token']=$user->createToken('MyApp')->accessToken;returnresponse()->json(['success'=>$success],$this->successStatus);}else{returnresponse()->json(['error'=>'Unauthorised'],401);}}公共函数寄存器(请求$request){$validator=Validator::make($request->all(),['name'=>'required','email'=>'required|email','password'=>'required','c_password'=>'required|same:password',]);如果($validator->fails()){returnresponse()->json(['error'=>$validator->errors()],401);$input=$request->all();$input['密码']=bcrypt($input['密码']);$user=User::create($input);$success['token']=$user->createToken('MyApp')->accessToken;$success['name']=$user->name;returnresponse()->json(['success'=>$success],$this->successStatus);}publicfunctiondetails(){$user=Auth::user();returnresponse()->json(['success'=>$user],$this->successStatus);}}(四)使用restclient来测试apiLoginAPI:RegisterAPI:DetailsAPI:这个测试前需要添加一一些头部信息:'headers'=>['Accept'=>'application/json','Authorization'=>'Bearer'.$accessToken,][翻译来源://itsolutionstuff.com/post/laravel-5-how-to-create-api-authentication-using-passport-example.html](//itsolutionstuff.com/post/laravel-5-how-to-create-api-authentication-using-passport-example.html)