国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用 laravel Passport 做 API 認(rèn)證

whinc / 1549人閱讀

摘要:使用進(jìn)行測試注冊接口,注冊成功后返回與用戶名登錄接口詳情接口參考了簡書浪來了的認(rèn)證應(yīng)用實戰(zhàn)

安裝larave

laravel new passport_demo
cd passport_demo && composer install

將 .env 中數(shù)據(jù)庫配置修改為自己的數(shù)據(jù)庫配置

 DB_DATABASE=homestead
 DB_USERNAME=homestead
 DB_PASSWORD=secret

安裝Passport

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

執(zhí)行php artisan migrate時可能出現(xiàn)以下錯誤

IlluminateDatabaseQueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

編輯app/Providers/AppServiceProvider.php

 namespace AppProviders;
 use IlluminateSupportServiceProvider;
 use IlluminateSupportFacadesSchema;//新增
 class AppServiceProvider extends ServiceProvider{
     public function boot(){
         Schema::defaultStringLength(191);//新增
     }
     public function register(){}
 }

然后再執(zhí)行這兩條命令即可

php artisan migrate
php artisan passport:install

編輯AppUserLaravelPassportHasApiTokens添加到AppUser

 namespace App;
 use IlluminateNotificationsNotifiable;
 use IlluminateFoundationAuthUser as Authenticatable;
 use LaravelPassportHasApiTokens;//新增
 class User extends Authenticatable{
     use Notifiable;
     use HasApiTokens;//新增
     protected $fillable = ["name", "email", "password",];
     protected $hidden = ["password", "remember_token",];
 }

app/Providers/AuthServiceProvider.phpboot方法中調(diào)用Passport::routes函數(shù)

 namespace AppProviders;
 use IlluminateSupportFacadesGate;
 use IlluminateFoundationSupportProvidersAuthServiceProvider as ServiceProvider;
 use LaravelPassportPassport;//新增
 class AuthServiceProvider extends ServiceProvider{
     protected $policies = ["AppModel" => "AppPoliciesModelPolicy",];
     public function boot(){
         $this->registerPolicies();
         Passport::routes();//新增
     }
 }

將配置文件config/auth.php中授權(quán)看守器guardsapidriver選項改為passport

//修改前
 "guards" => [
     "web" => [
         "driver" => "session",
         "provider" => "users",
     ],
     "api" => [
         "driver" => "token",
         "provider" => "users",
     ],
 ],
// 修改后
 "guards" => [
     "web" => [
         "driver" => "session",
         "provider" => "users",
     ],
     "api" => [
         "driver" => "passport",
         "provider" => "users",
     ],
 ],

創(chuàng)建文件app/Http/Controllers/UserController.php,這里的代碼來自另一個教程。

 namespace AppHttpControllers;
 use IlluminateHttpRequest;
 use AppHttpControllersController;
 use AppUser;
 use IlluminateSupportFacadesAuth;
 use Validator;
 class UserController extends Controller {
     public $successStatus = 200;
     public function login() {
         if(Auth::attempt(["email" => request("email"), "password" => request("password")])) {
             $user = Auth::user();
             $success["token"] =  $user->createToken("MyApp")->accessToken;
             return response()->json(["success" => $success], $this->successStatus);
         }
         else{
             return response()->json(["error"=>"Unauthorised"], 401);
         }
     }
     public function register(Request $request) {
         $validator = Validator::make($request->all(), [
             "name" => "required",
             "email" => "required|email",
             "password" => "required",
             "c_password" => "required|same:password",
         ]);
         if ($validator->fails()) {
             return response()->json(["error"=>$validator->errors()], 401);
         }
         $input = $request->all();
         $input["password"] = bcrypt($input["password"]);
         $user = User::create($input);
         $success["token"] =  $user->createToken("MyApp")->accessToken;
         $success["name"] =  $user->name;
         return response()->json(["success"=>$success], $this->successStatus);
     }
     public function details() {
         $user = Auth::user();
         return response()->json(["success" => $user], $this->successStatus);
     }
 }

使用postman進(jìn)行測試
注冊接口,注冊成功后返回token與用戶名

登錄接口

詳情接口

參考了簡書 浪來了2016 的Laravel5.4 Oauth2.0認(rèn)證應(yīng)用 API 實戰(zhàn)!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/29048.html

相關(guān)文章

  • 使用 Laravel Passport 為你的 REST API 增加用戶認(rèn)證功能

    摘要:在本教程中,我們將了解如何在應(yīng)用中使用認(rèn)證。當(dāng)用戶通過登錄時,會生成令牌并將其發(fā)送給用戶,該用戶可用于身份驗證。提供,可以毫無困難地使用認(rèn)證。服務(wù)提供者我們使用的最新版本,它可以使用包發(fā)現(xiàn)并自動注冊服務(wù)。 showImg(https://segmentfault.com/img/remote/1460000019095408?w=1000&h=526); 在本教程中,我們將了解如何在 ...

    mudiyouyou 評論0 收藏0
  • Laravel Passport API 認(rèn)證使用小結(jié)

    摘要:看到社區(qū)常有人問用于密碼驗證方式來獲取的問題,剛好我最近一個項目使用,也是使用的密碼授權(quán)來做驗證,對于如何做登錄登出,以及多賬號系統(tǒng)的認(rèn)證等常用場景做一下簡單的使用小總結(jié)。 看到Laravel-China社區(qū)常有人問Laravel Passport用于密碼驗證方式來獲取Token的問題,剛好我最近一個API項目使用Laravel Dingo Api+Passport,也是使用Oauth...

    Panda 評論0 收藏0
  • laravel/passport實現(xiàn)API認(rèn)證Laravel5.6)

    摘要:第一部分安裝第一步使用安裝第二步服務(wù)提供器使用框架注冊自己的數(shù)據(jù)庫遷移目錄,因此在注冊提供器后,就應(yīng)該運行的遷移命令來自動創(chuàng)建存儲客戶端和令牌的數(shù)據(jù)表第三步接下來,運行命令來創(chuàng)建生成安全訪問令牌時所需的加密密鑰,同時,這條命令也會創(chuàng)建用于生 第一部分 安裝Passport(laravel/passport) 第一步. 使用 Composer 安裝 Passport :composer...

    huayeluoliuhen 評論0 收藏0
  • Laravel使用Passport來創(chuàng)建API用戶認(rèn)證

    摘要:本文來自原文鏈接歡迎作客我們的學(xué)習(xí)群比如說你要給你的手機(jī)用戶創(chuàng)建,使用的是你已有的系統(tǒng)里的數(shù)據(jù)庫,尤其是用戶數(shù)據(jù)。 本文來自pilishen.com----原文鏈接; 歡迎作客我們的php&Laravel學(xué)習(xí)群:109256050 比如說你要給你的手機(jī)APP用戶創(chuàng)建API,使用的是你已有的Laravel系統(tǒng)里的數(shù)據(jù)庫,尤其是用戶數(shù)據(jù)。現(xiàn)在我們來看一下,這里使用的是Laravel Pas...

    TwIStOy 評論0 收藏0
  • PHP / Laravel API 開發(fā)推薦閱讀清單

    showImg(https://segmentfault.com/img/bV6aHV?w=1280&h=800); 社區(qū)優(yōu)秀文章 Laravel 5.5+passport 放棄 dingo 開發(fā) API 實戰(zhàn),讓 API 開發(fā)更省心 - 自造車輪。 API 文檔神器 Swagger 介紹及在 PHP 項目中使用 - API 文檔撰寫方案 推薦 Laravel API 項目必須使用的 8 個...

    shmily 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<