摘要:使用進(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
編輯AppUser將LaravelPassportHasApiTokens添加到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.php的 boot方法中調(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)看守器guards的api的driver選項改為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
摘要:在本教程中,我們將了解如何在應(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); 在本教程中,我們將了解如何在 ...
摘要:看到社區(qū)常有人問用于密碼驗證方式來獲取的問題,剛好我最近一個項目使用,也是使用的密碼授權(quán)來做驗證,對于如何做登錄登出,以及多賬號系統(tǒng)的認(rèn)證等常用場景做一下簡單的使用小總結(jié)。 看到Laravel-China社區(qū)常有人問Laravel Passport用于密碼驗證方式來獲取Token的問題,剛好我最近一個API項目使用Laravel Dingo Api+Passport,也是使用Oauth...
摘要:第一部分安裝第一步使用安裝第二步服務(wù)提供器使用框架注冊自己的數(shù)據(jù)庫遷移目錄,因此在注冊提供器后,就應(yīng)該運行的遷移命令來自動創(chuàng)建存儲客戶端和令牌的數(shù)據(jù)表第三步接下來,運行命令來創(chuàng)建生成安全訪問令牌時所需的加密密鑰,同時,這條命令也會創(chuàng)建用于生 第一部分 安裝Passport(laravel/passport) 第一步. 使用 Composer 安裝 Passport :composer...
摘要:本文來自原文鏈接歡迎作客我們的學(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...
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 個...
閱讀 3793·2021-11-12 10:34
閱讀 2812·2021-09-22 15:14
閱讀 778·2019-08-30 15:53
閱讀 3196·2019-08-30 12:53
閱讀 1280·2019-08-29 18:32
閱讀 2761·2019-08-29 16:41
閱讀 1056·2019-08-26 13:40
閱讀 1795·2019-08-23 18:07