下单全过程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 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 7

大佬 你在混学分嘛

1年前 评论
690914309 (楼主) 1年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!