摘要:使用进行测试注册接口,注册成功后返回与用户名登录接口详情接口参考了简书浪来了的认证应用实战
安装larave
laravel new passport_demo cd passport_demo && composer install
将 .env 中数据库配置修改为自己的数据库配置
DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret
安装Passport
composer require laravel/passport php artisan migrate php artisan passport:install
执行php artisan migrate时可能出现以下错误
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(){}
}
然后再执行这两条命令即可
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方法中调用Passport::routes函数
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中授权看守器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",
],
],
创建文件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进行测试
注册接口,注册成功后返回token与用户名
登录接口
详情接口
参考了简书 浪来了2016 的Laravel5.4 Oauth2.0认证应用 API 实战!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/29048.html
摘要:在本教程中,我们将了解如何在应用中使用认证。当用户通过登录时,会生成令牌并将其发送给用户,该用户可用于身份验证。提供,可以毫无困难地使用认证。服务提供者我们使用的最新版本,它可以使用包发现并自动注册服务。 showImg(https://segmentfault.com/img/remote/1460000019095408?w=1000&h=526); 在本教程中,我们将了解如何在 ...
摘要:看到社区常有人问用于密码验证方式来获取的问题,刚好我最近一个项目使用,也是使用的密码授权来做验证,对于如何做登录登出,以及多账号系统的认证等常用场景做一下简单的使用小总结。 看到Laravel-China社区常有人问Laravel Passport用于密码验证方式来获取Token的问题,刚好我最近一个API项目使用Laravel Dingo Api+Passport,也是使用Oauth...
摘要:第一部分安装第一步使用安装第二步服务提供器使用框架注册自己的数据库迁移目录,因此在注册提供器后,就应该运行的迁移命令来自动创建存储客户端和令牌的数据表第三步接下来,运行命令来创建生成安全访问令牌时所需的加密密钥,同时,这条命令也会创建用于生 第一部分 安装Passport(laravel/passport) 第一步. 使用 Composer 安装 Passport :composer...
摘要:本文来自原文链接欢迎作客我们的学习群比如说你要给你的手机用户创建,使用的是你已有的系统里的数据库,尤其是用户数据。 本文来自pilishen.com----原文链接; 欢迎作客我们的php&Laravel学习群:109256050 比如说你要给你的手机APP用户创建API,使用的是你已有的Laravel系统里的数据库,尤其是用户数据。现在我们来看一下,这里使用的是Laravel Pas...
showImg(https://segmentfault.com/img/bV6aHV?w=1280&h=800); 社区优秀文章 Laravel 5.5+passport 放弃 dingo 开发 API 实战,让 API 开发更省心 - 自造车轮。 API 文档神器 Swagger 介绍及在 PHP 项目中使用 - API 文档撰写方案 推荐 Laravel API 项目必须使用的 8 个...
阅读 4388·2021-11-12 10:34
阅读 3011·2021-09-22 15:14
阅读 1051·2019-08-30 15:53
阅读 3477·2019-08-30 12:53
阅读 1526·2019-08-29 18:32
阅读 2928·2019-08-29 16:41
阅读 1276·2019-08-26 13:40
阅读 1983·2019-08-23 18:07