下单全过程1
收获地址表
数据迁移
这是建造文件
php artisan migrate
执行迁移文件
数据库算建好了
然后建立模型
大量的收获地址属于模型
用户有大量的收货地址
?修改获取器
收获地址与列表?
我用的第二个
//获取用户token
//数据填充
这里应该一一对应
第二个问题 鉴权 ?
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Tymon\JWTAuth\Exceptions\JWTException;
use Tymon\JWTAuth\Exceptions\TokenExpiredException;
use Tymon\JWTAuth\Facades\JWTAuth;
use Tymon\JWTAuth\Http\Middleware\BaseMiddleware;
class LoginAuthVerifty extends BaseMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle(Request $request, Closure $next)
{
//校验请求是否传递token
$this->checkForToken($request);
try{
//通过解析token进行身份认证
if ($user = JWTAuth::parseToken()->authenticate()){
return $next($request);
}
return response()->json([
'code' => 400,
'error' => '未登录',
'LoginURL' => 'http://shopstar.com/api/login'
]);
}catch (TokenExpiredException $exception){
try{
//检测到token过期,重新刷新一个token
$token = $this->auth->refresh();
$access_token = 'Bearer'.$token;
//将本次请求的token进行更换
$request->headers->set('Authorization',$access_token);
//允许临时进行登录,一个过期的token只能有一次临时登录重新刷新token的机会
Auth::guard('api')->onceUsingId($this->auth->manager()->getPayloadFactory()->buildClaimsCollection()->toPlainArray()['sub']);
}catch (JWTException $exception){
return response()->json([
'code' => 400,
'error' => '您的身份认证已失效,请重新登录',
'LoginURL' => 'http://shopstar.com/api/login'
]);
}
}
return $this->setAuthenticationHeader($next($request),$token);
}
}
注册中间件
使用之前正确的
用token刷新
使之前token 失效 就是登出功能 有个刷新功能?
这个后面做
public function logout()
{
try{
$key = "shop::user::".$this->getTokenUser()->id;
auth('api')->logout();//使用token失效,被加入到黑名单中
Redis::del($key);
return [
'code' => 200,
'退出成功'
];
}catch (JWTException $exception){
return [
'code' => 400,
'error' => $exception->getMessage()
];
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
大佬 你在混学分嘛