laravel登陆、退出登陆、刷新token的api编写
一、登陆api
1.1、创建登陆api控制器
运行命令php artisan make:controller Auth/LoginController:
控制器写入一下方法,代码:
<?php namespace AppHttpControllersAuth; use AppHttpControllersBaseController; use IlluminateHttpRequest; 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 IlluminateHttpJsonResponse */ //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 IlluminateHttpJsonResponse */ 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中找到
再去.env配置环境中配置JWT_TTL,默认为一小时:
1.3、创建登陆路由
在routesauth.php文件下创建登陆路由:
// 登陆 $api->post(login, [LoginController::class, login]);
1.4、创建登陆表单验证
运行命令:php artisan make:request Auth/LoginRequest
在LoginRequest.php写入如下代码:
<?php namespace AppHttpRequestsAuth; use AppHttpRequestsBaseRequest; 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中登陆控制器,使用我们验证的request:
效果:
二、退出登陆api
2.1 退出登陆路由
// 退出登陆,(前提在登陆后才需要退出登陆) $api->post(logout, [LoginController::class, logout]);
三、刷新token
3.1、刷新token路由
// 刷新token $api->post(refresh, [LoginController::class, refresh]);
四、编写文档
在showdoc里去编写我们写的接口文档:
##### 简要描述 - 用户注册接口 ##### 请求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 }
以后写的其他接口也类似这样去写接口文档,接口文档是很重要的,方便前端去对接,也方便自己查阅,不要忽略了,这边写个例子,以后不在赘述。
上一篇:
IDEA上Java项目控制台中文乱码