资讯专栏INFORMATION COLUMN

laravel/passport实现API认证(Laravel5.6)

huayeluoliuhen / 2840人阅读

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

第一部分 安装Passport(laravel/passport)
第一步. 使用 Composer 安装 Passport :
composer require laravel/passport=~7.0
第二步. Passport 服务提供器使用框架注册自己的数据库迁移目录,因此在注册提供器后,
就应该运行 Passport 的迁移命令来自动创建存储客户端和令牌的数据表:
php artisan migrate
第三步. 接下来,运行 passport:install 命令来创建生成安全访问令牌时所需的加密密钥,
同时,这条命令也会创建用于生成访问令牌的「个人访问」客户端和「密码授权」客户端:
php artisan passport:install
第二部分 开始配置
第四步. 将 LaravelPassportHasApiTokens Trait 添加到 AppUser 模型中,`
这个 Trait 会给你的模型提供一些辅助函数,用于检查已认证用户的令牌和使用范围:

第五步. 在AuthServiceProvider中, 增加 "Passport::routes()"和过期时间:
addDays(30));  //这里设置为30天过期
        Passport::refreshTokensExpireIn(now()->addDays(30));
    }
}
第六步. 在 auth.php中, 更改 api 认证方式为passport:
 [
        "web" => [
            "driver" => "session",
            "provider" => "users",
        ],

        "api" => [
            "driver" => "passport",
            "provider" => "users",
        ],
    ]
];
第三部分 提供测试接口
第七步. 增加相应API路由配置:
 "Api"], function () {
    // 登录
    Route::post("login", "LoginController@login");
    // 注册
    Route::post("register", "LoginController@register");
    Route::group(["middleware" => "auth:api"], function () {
        // 用户信息
        Route::get("user", "LoginController@read");
    });
});
第八步. 创建controller => php artisan make:controller Api/LoginController:
 request("email"), "password" => request("password")])){
            $user = Auth::user();
            $success["token"] =  $user->createToken("EDU")->accessToken;
            return response()->json(["success" => $success], $this->successStatus);
        }
        else{
            return response()->json(["error"=>"Unauthorised"], 401);
        }
    }

    /**
     * 注册API
     *
     * @param Request $request
     * @param email    登录邮箱
     * @param password 登录密码
     *
     * @return IlluminateHttpResponse
     */
    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);

        // 创建token并返回
        $success["token"] = $user->createToken("EDU")->accessToken;
        $success["name"] = $user->name;
        return response()->json(["success"=>$success], $this->successStatus);
    }

    /**
     * 读取用户信息API
     *
     * @return IlluminateHttpResponse
     */
    public function read()
    {
        $user = Auth::user();
        return response()->json(["success" => $user], $this->successStatus);
    }
}
第九步. 使用Postman测试API:

测试API数据获取,需要在headers中添加Token;  格式
key=Authorization,value=Bearer空格token

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

转载请注明本文地址:https://www.ucloud.cn/yun/29864.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 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
  • Laravel使用Passport来创建API用户认证

    摘要:本文来自原文链接欢迎作客我们的学习群比如说你要给你的手机用户创建,使用的是你已有的系统里的数据库,尤其是用户数据。 本文来自pilishen.com----原文链接; 欢迎作客我们的php&Laravel学习群:109256050 比如说你要给你的手机APP用户创建API,使用的是你已有的Laravel系统里的数据库,尤其是用户数据。现在我们来看一下,这里使用的是Laravel Pas...

    TwIStOy 评论0 收藏0

发表评论

0条评论

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