资讯专栏INFORMATION COLUMN

Laravel使用Passport来创建API用户认证

TwIStOy / 2458人阅读

摘要:本文来自原文链接欢迎作客我们的学习群比如说你要给你的手机用户创建,使用的是你已有的系统里的数据库,尤其是用户数据。

本文来自pilishen.com----原文链接; 欢迎作客我们的php&Laravel学习群:109256050

比如说你要给你的手机APP用户创建API,使用的是你已有的Laravel系统里的数据库,尤其是用户数据。现在我们来看一下,这里使用的是Laravel Passport组件。

我们将要创建三个api,分别是:

Login API

Register API

Details API

(一)安装和配置Passport
composer require laravel/passport

config/app.php中注册provider

"providers" => [
    ....
    LaravelPassportPassportServiceProvider::class,
],

创建Passport需要的数据表:

php artisan migrate

然后初始化Passport,执行:

php artisan passport:install

该命令会生成用以后期创建安全令牌(access token)的秘钥,同时也会创建personal accesspassword grant两个客户端(clients)。

接下来,在app/User.php中添加HasApiTokens trait:


然后在app/Providers/AuthServiceProvider.php中添加Passport::routes();

registerPolicies();
        Passport::routes();
    }
}

config/auth.php中将apidriver改成passport:

 [
       ...
        "api" => [
            "driver" => "passport",
            "provider" => "users",
        ],
    ],
    .....
]
(二)创建相应的api路由

在你的routes/api.php

Route::post("login", "APIUserController@login");
Route::post("register", "APIUserController@register");

Route::group(["middleware" => "auth:api"], function(){
    Route::post("details", "APIUserController@details");
});
(三)创建相应的controller

路径app/Http/Controllers/API/UserController.php

 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);
    }
}
(四)使用rest client来测试api

Login API:

Register API:

Details API:

这个测试前需要添加一些header信息:

"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)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28334.html

相关文章

  • 使用 Laravel Passport 为你的 REST API 增加用户认证功能

    摘要:在本教程中,我们将了解如何在应用中使用认证。当用户通过登录时,会生成令牌并将其发送给用户,该用户可用于身份验证。提供,可以毫无困难地使用认证。服务提供者我们使用的最新版本,它可以使用包发现并自动注册服务。 showImg(https://segmentfault.com/img/remote/1460000019095408?w=1000&h=526); 在本教程中,我们将了解如何在 ...

    mudiyouyou 评论0 收藏0
  • Laravel Passport里的授权类型介绍

    摘要:模糊授权,跟上面的认证码授权类似,不同的是,我们的资源服务器,返回的直接就是准入令牌,而不是认证码。 本文来自pilishen.com----原文链接; 欢迎来和pilishen一起学习php&Laravel;学习群:109256050 OAuth2是一个安全框架,控制着程序受保护部分的准入,主要是控制不同的客户端如何来调取API,保证它们在请求相应资源的时候有相应的权限。 Larav...

    RobinTang 评论0 收藏0
  • laravel/passport实现API认证Laravel5.6)

    摘要:第一部分安装第一步使用安装第二步服务提供器使用框架注册自己的数据库迁移目录,因此在注册提供器后,就应该运行的迁移命令来自动创建存储客户端和令牌的数据表第三步接下来,运行命令来创建生成安全访问令牌时所需的加密密钥,同时,这条命令也会创建用于生 第一部分 安装Passport(laravel/passport) 第一步. 使用 Composer 安装 Passport :composer...

    huayeluoliuhen 评论0 收藏0
  • 使用 laravel PassportAPI 认证

    摘要:使用进行测试注册接口,注册成功后返回与用户名登录接口详情接口参考了简书浪来了的认证应用实战 安装larave laravel new passport_demo cd passport_demo && composer install 将 .env 中数据库配置修改为自己的数据库配置 DB_DATABASE=homestead DB_USERNAME=homestead DB_P...

    whinc 评论0 收藏0
  • Laravel Passport API 认证使用小结

    摘要:看到社区常有人问用于密码验证方式来获取的问题,刚好我最近一个项目使用,也是使用的密码授权来做验证,对于如何做登录登出,以及多账号系统的认证等常用场景做一下简单的使用小总结。 看到Laravel-China社区常有人问Laravel Passport用于密码验证方式来获取Token的问题,刚好我最近一个API项目使用Laravel Dingo Api+Passport,也是使用Oauth...

    Panda 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<