laravel登录状态jwt使用postman调试session和Cookie和Authorization前缀

laravel登录状态jwt使用postman调试session和Cookie和Authorization

jwt中使用session在cookie前缀名称是使用的.env中的APP_NAME名称,如:APP_NAME=Lumeng,则Cookie:lumeng_session=xxxxxx

开始

后端php代码:

config/auth.php

<?php
//前端 门卫
$defaults = [
    'guard' => 'web',
    'passwords' => 'user',
];
//后台 门卫
if (request()->segment(1) == 'api')
{
    $defaults = [
        'guard' => 'api',
        'passwords' => 'sys_user',
    ];
}

return [

    'defaults' => $defaults,

    'guards' => [
        'web' => [
            'driver' => 'jwt',
            'provider' => 'user',
            'hash' => true,
        ],

        'web2' => [
            'driver' => 'session',
            'provider' => 'insurancecard_userfront',
            'hash' => true,
        ],

        'api' => [
            'driver' => 'jwt',
            'provider' => 'sys_user',
            'hash' => false,
        ]
    ],


    'providers' => [
        'sys_user' => [
            'driver' => 'eloquent',
            'model' => App\Models\SysUser::class,//对应的模型类
        ],
        'user' => [
            'driver' => 'eloquent',
            'model' => App\Models\User::class,//对应的模型类
        ],
        'insurancecard_userfront'=>[
            'driver' => 'eloquent',
            'model' => Modules\Insurancecard\Models\InsurancecardUserFrontModel::class,//对应的模型类
        ],
    ],


    'passwords' => [
        'sys_user' => [
            'provider' => 'sys_user',
            'table' => 'password_resets',
            'expire' => 60,
            'throttle' => 60,
        ],
		'user' => [
            'provider' => 'user',
            'table' => 'password_resets',
            'expire' => 60,
            'throttle' => 60,
        ],
        'web2' => [
            'provider' => 'web2',
            'table' => 'password_resets',
            'expire' => 60,
            'throttle' => 60,
        ],

    ],


    'password_timeout' => 10800,
];

控制器:

    /**
     * jwt:
     * 请求头header的键名:Authorization: Bearer xxxxxx
     */
    function login_jwt()
    {
        $auth_key       = 'web';
        $auth_data      = auth($auth_key)->user();//jwt
        if($auth_data)
        {
            echo '已登录!(根据 Authorization)'.$auth_data->id;exit;
        }

        $row_user   = UserModel::where([])->first();//注意模型不要选错了
        $token      = auth($auth_key)->login($row_user);

        $return_data = [
            'access_token' => $token,
            'token_type' => 'Bearer',
            'expires_in' => auth($auth_key)->factory()->getTTL() * 60,
        ];
        return $return_data;
    }

    /**
     * session:
     * 请求头header的键名:Cookie: admin_api_session=xxxxxx; expires=Wed, 31-May-2023 05:51:34 GMT; Max-Age=1800; path=/; secure; httponly; samesite=lax
     */
    function login_session()
    {
        $auth_key       = 'web2';//session
        $auth_data      = auth($auth_key)->user();//jwt
        if($auth_data)
        {
            echo '已登录!(根据 cookie)'.$auth_data->id;exit;
        }

        $row_user   = InsurancecardUserFrontModel::where([])->first();//注意模型不要选错了
        $token      = auth($auth_key)->login($row_user);

        $return_data = [
            'access_token' => $token,
//            'token_type' => 'Bearer',
//            'expires_in' => auth($auth_key)->factory()->getTTL() * 60,
        ];
        return $return_data;
    }

模型:

<?php

namespace Modules\Insurancecard\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Notifications\Notifiable;
use Tymon\JWTAuth\Contracts\JWTSubject;

class InsurancecardUserFrontModel extends Authenticatable  implements JWTSubject
{
    use SoftDeletes;
    use Notifiable;
    protected $table = 'insurancecard_userfront';
    protected $primaryKey = 'id';
    public $timestamps = true;
    protected $dateFormat = 'U';


    public function getJWTIdentifier()
    {
        return $this->getKey();
    }

    public function getJWTCustomClaims()
    {
        return [];
    }



}

postman模拟请求:

jwt 1

 

jwt2

 

session1

 

session2 

 

结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值