国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

??Auth多用戶認(rèn)證/單點(diǎn)/多點(diǎn)登入(JWT,SESSION)

v2.0.0 版本
2025-03-17 版本更新時(shí)間
2374 安裝
18 star

'Build Status' 'Latest Stable Version' 'Total Downloads' 'License'

安裝

composer require shopwwi/webman-auth

配置文件

//路徑 config/plugin/shopwwi/auth/app.php
// app_key 如果是laravel遷移過來的用戶需與之前l(fā)aravel的保持一致 如果是全新的 隨意寫個key即可
// jwt 配置項(xiàng)按自己需求配置即可 redis默認(rèn)為false 如果要限制終端 則改為true
配置多用戶

//初始化的示例 一定要改成自己實(shí)際的
'guard' => [
     'user' => [
         'key' => 'id', //主鍵
         'field' => ['id','name','email','mobile'], //設(shè)置允許寫入擴(kuò)展中的字段 一般為數(shù)據(jù)表存在的字段
         'num' => 0, //-1為不限制終端數(shù)量 0為只支持一個終端在線 大于0為同一賬號同終端支持?jǐn)?shù)量 建議設(shè)置為1 則同一賬號同終端在線1個
         'model'=> app\model\Test::class // 默認(rèn)laravel
        // 'model'=> [app\model\Test::class,'thinkphp'] // 指定ORM類型 
     ]
];
// 配置示例(根據(jù)自己真實(shí)情況 user一定要存在 因?yàn)槟J(rèn)就是user)
// field 是可以通過jwtKey解析出來的 請勿用敏感字段 以免信息泄露
'guard' => [
     'user' => [ // 普通用戶
         'key' => 'id', //主鍵
         'field' => ['id','username','email','mobile','avatar'], //設(shè)置允許寫入擴(kuò)展中的字段 一般為數(shù)據(jù)表存在的字段
         'num' => 0, //-1為不限制終端數(shù)量 0為只支持一個終端在線 大于0為同一賬號同終端支持?jǐn)?shù)量 建議設(shè)置為1 則同一賬號同終端在線1個
         'model'=> app\model\User::class //用戶表模型
     ],
     'admin' => [ // 平臺用戶
         'key' => 'id', //主鍵
         'field' => ['id','name','avatar'], //設(shè)置允許寫入擴(kuò)展中的字段 一般為數(shù)據(jù)表存在的字段
         'num' => 0, //-1為不限制終端數(shù)量 0為只支持一個終端在線 大于0為同一賬號同終端支持?jǐn)?shù)量 建議設(shè)置為1 則同一賬號同終端在線1個
         'model'=> app\model\Admin::class //管理員表模型
     ]
];

使用方法

  1. 生成JWT密鑰(命令行)
php webman shopwwi:auth
  1. 加密密碼
use Shopwwi\WebmanAuth\Facade\Auth;

//不可逆轉(zhuǎn) 只能用password_verify來判斷正確與否
$password = '123456';
Auth::bcrypt($password);

3.自動對字段進(jìn)行驗(yàn)證且登入

use Shopwwi\WebmanAuth\Facade\Auth;

//驗(yàn)證字段一定得和設(shè)定得角色模型相匹配可以是任何字段組
// 這里自動進(jìn)行了model查庫操作 如果你的不支持 請用自定義登入
$tokenObject = Auth::attempt(['name'=> 'tycoonSong','password' => '123456']);

//返回對象$tokenObject 包含token_type,expires_in,refresh_expires_in,access_token,refresh_token

// 默認(rèn)為user角色 當(dāng)你是admin登入時(shí)
$tokenObject = Auth::guard('admin')->attempt(['name'=> 'tycoonSong','password' => '123456']);

4.自定義登入

use Shopwwi\WebmanAuth\Facade\Auth;
use app\model\User;
use app\model\Admin;
//返回對象$tokenObject 包含token_type,expires_in,refresh_expires_in,access_token,refresh_token

$user = User::first();
$tokenObject = Auth::login($user);//$user可以是對象 同樣可以是數(shù)組

// 默認(rèn)為user角色 當(dāng)你是admin登入時(shí)
$admin = Admin::first();
$tokenObject = Auth::guard('admin')->login($admin);

5.獲取當(dāng)前登入用戶信息

    use Shopwwi\WebmanAuth\Facade\Auth;
     $user = Auth::user(); //得到用戶模型對象,查庫數(shù)據(jù),需查詢動態(tài)數(shù)據(jù)時(shí)使用
     $user = Auth::user(true); // 得到擴(kuò)展數(shù)據(jù)對象,非查庫數(shù)據(jù),比如只需得到用戶ID或不常更新字段使用
     $admin = Auth::guard('admin')->user(); //當(dāng)前登入管理員

6.退出登入

    use Shopwwi\WebmanAuth\Facade\Auth;
     $logout = Auth::logout(); //退出當(dāng)前用戶
     $logout = Auth::logout(true); // 退出所有當(dāng)前用戶終端
     $logout = Auth::guard('admin')->logout(); //管理員退出

7.刷新當(dāng)前登入用戶token

     use Shopwwi\WebmanAuth\Facade\Auth;
     $refresh = Auth::refresh();
     $refresh = Auth::guard('admin')->refresh(); //管理員刷新

8.單獨(dú)設(shè)置過期時(shí)間

use Shopwwi\WebmanAuth\Facade\Auth;
use app\model\User;
$user = User::first();
Auth::accessTime(3600)->refreshTime(360000)->login($user);
Auth::accessTime(3600)->refreshTime(360000)->attempt(['name'=> 'tycoonSong','password' => '123456']);
Auth::accessTime(3600)->refresh();

9.獲取報(bào)錯信息 Auth::fail();

    //默認(rèn)設(shè)定是不會報(bào)錯的 
    $user = Auth::user(); //當(dāng)沒有登入或異常時(shí)返回的null 用于用戶可登入或可不登入場景里 只需要判斷 $user == null 即可
    //而比如在會員中心調(diào)用時(shí) 
    $user = Auth::fail()->user(); //走的是異常處理類http://www.wtbis.cn/doc/webman/exception.html
  • 開啟redis后,建議開啟
    // 在使用過程中我們通常一個接口允許多端使用的情況 那么默認(rèn)設(shè)置是不限制使用端口的 
    // 可當(dāng)你想允許比如web端同一賬號只允許存在三個終端在線或同一賬號APP只允許一個終端使用
    // 默認(rèn)為web終端 傳參client_type=web或你其它的終端client_type=ios
    //config/plugin/shopwwi/auth/app.php設(shè)置
    'guard' => [
         'user' => [ // 普通用戶
             'key' => 'id', //主鍵
             'field' => ['id','username','email','mobile','avatar'], //設(shè)置允許寫入擴(kuò)展中的字段 一般為數(shù)據(jù)表存在的字段
             'num' => 0, //-1為不限制終端數(shù)量 0為只支持一個終端在線 大于0為同一賬號同終端支持?jǐn)?shù)量 建議設(shè)置為1 則同一賬號同終端在線1個
             'model'=> app\model\User::class //用戶表模型
         ]
     ]
     'jwt' => [
         'redis' => false,
         ....
      ]

    Auth::logout(true); // 退出所有當(dāng)前用戶終端
  • 獲取所有redis用戶及終端狀態(tài)

    // 你可以使用redis hash對終端在線更好的管理 比如對某個用戶進(jìn)行下線處理,或查詢用戶的token有效期
    // 具體業(yè)務(wù)自行根據(jù)需求去實(shí)現(xiàn) 本系統(tǒng)未對這方面業(yè)務(wù)進(jìn)行封裝
    $guard = 'user';
    Redis::hGetAll('token_'.$guard);
    // 用戶編號為1 的 token下線清除 ,可以批量
    Redis::hDel('token_'.$guard,[1]);
  • 直接調(diào)用jwt

    use Shopwwi\WebmanAuth\Facade\JWT as JwtFace;
    JwtFace::guard('user')->make($extend,$access_exp,$refresh_exp); //生成token 可為make($extend)
    JwtFace::guard('user')->refresh($accessTime = 0); //刷新令牌 可為refresh()
    JwtFace::guard('user')->verify($token); //$token可以不填則自動驗(yàn)證令牌 verify()
    JwtFace::guard('user')->getTokenExtend($token)//$token可以不填則自動驗(yàn)證令牌getTokenExtend()
贊助商