最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • laravel登陆、退出登陆、刷新token的api编写

    正文概述 转载于:掘金(陆景学)   2021-08-22   1172

    这是我参与8月更文挑战的第22天,活动详情查看:8月更文挑战

    一、登陆api

    1.1、创建登陆api控制器

    运行命令php artisan make:controller Auth/LoginControllerlaravel登陆、退出登陆、刷新token的api编写 控制器写入一下方法,代码:

    <?php
    
    namespace App\Http\Controllers\Auth;
    
    use App\Http\Controllers\BaseController;
    use Illuminate\Http\Request;
    
    class LoginController extends BaseController
    {
        /**
         * 登陆
         */
        public function login()
        {
            $credentials = request(['email', 'password']);
    
            if (!$token = auth('api')->attempt($credentials)) {
                return $this->response()->errorUnauthorized();
            }
    
            return $this->respondWithToken($token);
        }
    
        /**
         * Get the authenticated User.
         * 获取个人信息
         * @return \Illuminate\Http\JsonResponse
         */
        //public function me()
        //{
        //    return response()->json(auth('api')->user());
        //}
    
        /**
         * 退出登陆
         */
        public function logout()
        {
            auth('api')->logout();
    
            return response()->json(['message' => 'Successfully logged out']);
        }
    
        /**
         * Refresh a token.
         * 刷新token
         * @return \Illuminate\Http\JsonResponse
         */
        public function refresh()
        {
            return $this->respondWithToken(auth('api')->refresh());
        }
    
        /**
         * 格式化返回
         */
        protected function respondWithToken($token)
        {
        	// 方法一
            return response()->json([
                'access_token' => $token,
                'token_type' => 'Bearer',
                'expires_in' => auth('api')->factory()->getTTL() * 60
            ]);
    		// 方法二
            // return $this->response()->array([
            //     'access_token' => $token,
            //     'token_type' => 'Bearer',
            //     'expires_in' => auth('api')->factory()->getTTL() * 60
            // ]);
        }
    }
    

    1.2 修改token过期时间

    config/jwt.php中找到laravel登陆、退出登陆、刷新token的api编写 再去.env配置环境中配置JWT_TTL,默认为一小时: laravel登陆、退出登陆、刷新token的api编写

    1.3、创建登陆路由

    routes\auth.php文件下创建登陆路由:

    // 登陆
            $api->post('login', [LoginController::class, 'login']);
    

    laravel登陆、退出登陆、刷新token的api编写

    1.4、创建登陆表单验证

    运行命令:php artisan make:request Auth/LoginRequest laravel登陆、退出登陆、刷新token的api编写LoginRequest.php写入如下代码:

    <?php
    
    namespace App\Http\Requests\Auth;
    
    use App\Http\Requests\BaseRequest;
    
    class LoginRequest extends BaseRequest
    {
        /**
         * Get the validation rules that apply to the request.
         *
         * @return array
         */
        public function rules()
        {
            return [
                'email' => 'required|email ',
                'password' => 'required|min:6|max:16',
            ];
        }
    }
    

    修改LoginController.php中登陆控制器,使用我们验证的requestlaravel登陆、退出登陆、刷新token的api编写 效果: laravel登陆、退出登陆、刷新token的api编写

    二、退出登陆api

    2.1 退出登陆路由

    // 退出登陆,(前提在登陆后才需要退出登陆)
    $api->post('logout', [LoginController::class, 'logout']); 
    

    laravel登陆、退出登陆、刷新token的api编写

    三、刷新token

    3.1、刷新token路由

    // 刷新token
    $api->post('refresh', [LoginController::class, 'refresh']); 
    

    laravel登陆、退出登陆、刷新token的api编写

    四、编写文档

    showdoc里去编写我们写的接口文档: laravel登陆、退出登陆、刷新token的api编写

    ##### 简要描述
    
    - 用户注册接口
    
    ##### 请求URL
    - `/api/auth/register `
      
    ##### 请求方式
    - POST 
    
    ##### 参数
    
    |参数名|必选|类型|说明|
    |:----    |:---|:----- |-----   |
    |name |是  |string |用户名 最大长度16  |
    |email     |是  |string | 邮箱  邮箱格式  |
    |password |是  |string | 密码 最小长度6 最大长度16   |
    |password_confirmation  |是  |string | 确认密码 和密码一样   |
    
    
    ##### 返回示例 
    - 状态码 201 创建成功
    
    - 状态码 422 参数错误
    {
        "message": "The given data was invalid.",
        "errors": {
            "name": [
                "名称 不能为空。"
            ],
            "email": [
                "邮箱 不能为空。"
            ],
            "password": [
                "密码 不能为空。"
            ]
        },
        "status_code": 422
    }
    

    laravel登陆、退出登陆、刷新token的api编写 以后写的其他接口也类似这样去写接口文档,接口文档是很重要的,方便前端去对接,也方便自己查阅,不要忽略了,这边写个例子,以后不在赘述。


    起源地下载网 » laravel登陆、退出登陆、刷新token的api编写

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元