成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Laravel使用JWT實(shí)現(xiàn)API用戶授權(quán)

kid143 / 3349人閱讀

摘要:第二部分開始配置第五步配置,在文件中,你需要將更新為,只有在使用及以上版本的情況下才能使用。第六步更改,在上實(shí)現(xiàn)接口,實(shí)現(xiàn)兩個(gè)方法。

第一部分 安裝JWT
第一步. 使用Composer安裝 tymon/jwt-auth :
`composer require tymon/jwt-auth 1.0.0-rc.3
第二步. 添加服務(wù)提供商(Laravel5.4及以下版本,5.5及以上版本無需添加),
將下面這行添加至 config/app.php 文件 providers 數(shù)組中:
 [
    // other code
    TymonJWTAuthProvidersLaravelServiceProvider::class,
]
第三步. 發(fā)布配置文件,
運(yùn)行如下命令發(fā)布 jwt-auth 的配置文件:
php artisan vendor:publish --provider="TymonJWTAuthProvidersLaravelServiceProvider"
第四步. 生成密鑰,
此命令會(huì)在你的 .env 文件中新增一行 JWT_SECRET=secret。
php artisan jwt:secret
第二部分 開始配置
第五步. 配置 Auth guard,`
在 config/auth.php 文件中,你需要將 guards/driver 更新為 jwt,
只有在使用 Laravel 5.2 及以上版本的情況下才能使用。
 [
    "guard" => "api",
    "passwords" => "users",
],
// other code
"guards" => [
    "api" => [
        "driver" => "jwt",
        "provider" => "users",
    ],
],
第六步. 更改 User Model,
在User Model上實(shí)現(xiàn)TymonJWTAuthContractsJWTSubject接口,
實(shí)現(xiàn)getJWTIdentifier() and getJWTCustomClaims()兩個(gè)方法。
getKey();
    }

    /**
     * Return a key value array, containing any custom claims to be added to the JWT.
     *
     * @return array
     */
    public function getJWTCustomClaims()
    {
        return [];
    }
}
第三部分 快速創(chuàng)建DEMO測試
第七步. 添加一些基本身份驗(yàn)證路由:
 "api",
    "prefix" => "auth"
], function ($router) {
    Route::post("login", "AuthController@login");
    Route::post("register", "AuthController@register");
    Route::post("logout", "AuthController@logout");
    Route::post("refresh", "AuthController@refresh");
    Route::post("me", "AuthController@me");
});
第八步. 創(chuàng)建AuthController控制器 => php artisan make:controller AuthController:
middleware("auth:api", ["except" => ["login", "register"]]);
    }

    /**
     * 用戶使用郵箱密碼獲取JWT Token.
     *
     * @return IlluminateHttpJsonResponse
     */
    public function login()
    {
        $credentials = request(["email", "password"]);

        if (! $token = auth()->attempt($credentials)) {
            return response()->json(["error" => "Unauthorized"], 401);
        }

        return $this->respondWithToken($token);
    }

    /**
     * 注冊(cè)新用戶
     */
    public function register(Request $request)
    {
        // 數(shù)據(jù)校驗(yàn)
        // 數(shù)據(jù)驗(yàn)證
        $validator = Validator::make($request->all(), [
            "name"       => "required",
            "email"      => "required|email",
            "password"   => "required",
            "c_password" => "required|same:password"
        ]);

        if ($validator->fails()) {
            return response()->json(["error"=>$validator->errors()], 401);
        }

        // 讀取參數(shù)并保存數(shù)據(jù)
        $input = $request->all();
        $input["password"] = bcrypt($input["password"]);
        $user = User::create($input);

        // 創(chuàng)建Token并返回
        return $user;
    }

    /**
     * 獲取經(jīng)過身份驗(yàn)證的用戶.
     *
     * @return IlluminateHttpJsonResponse
     */
    public function me()
    {
        return response()->json(auth()->user());
    }

    /**
     * 刷新Token.
     *
     * @return IlluminateHttpJsonResponse
     */
    public function refresh()
    {
        return $this->respondWithToken(auth()->refresh());
    }


    /**
     * Get the token array structure.
     *
     * @param  string $token
     *
     * @return IlluminateHttpJsonResponse
     */
    protected function respondWithToken($token)
    {
        return response()->json([
            "access_token" => $token,
            "token_type" => "bearer",
            "expires_in" => auth()->factory()->getTTL() * 60
        ]);
    }
}
第九步. 使用Postman測試API:   

測試API數(shù)據(jù)獲取,需要在headers中添加Token;  格式
key=Authorization,value=Bearer空格token

Token刷新:

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29859.html

相關(guān)文章

  • koa2 + graphql + typescript + jwt + typeorm的nodejs

    最近寫了一個(gè)node項(xiàng)目,主要使用到的技術(shù)有: koa2 // nodejs 框架 koa-router // koa路由 graphql // 查詢api typescript // 強(qiáng)類型語言 jwt // 授權(quán) typeorm // typescript的一個(gè)orm mysql2 // 內(nèi)容數(shù)據(jù)庫 mongodb // 日志存儲(chǔ)數(shù)據(jù)庫 redis // 服務(wù)器緩存 項(xiàng)目結(jié)構(gòu):sh...

    Dogee 評(píng)論0 收藏0
  • Laravel 5.5 使用 Jwt-Auth 實(shí)現(xiàn) API 用戶認(rèn)證以及無痛刷新訪問令牌

    摘要:默認(rèn)的時(shí)間為周。大概意思就是如果用戶有一個(gè),那么他可以帶著他的過來領(lǐng)取新的,直到周的時(shí)間后,他便無法繼續(xù)刷新了,需要重新登錄。指定在刷新令牌時(shí)要保留的聲明密鑰。為了使令牌無效,您必須啟用黑名單。指定用于對(duì)用戶進(jìn)行身份驗(yàn)證的提供程序。 showImg(https://segmentfault.com/img/remote/1460000012606251?w=1920&h=1280); ...

    xavier 評(píng)論0 收藏0
  • Laravel使用JWT來創(chuàng)建用戶認(rèn)證API

    摘要:本文來自原文鏈接歡迎作客我們的學(xué)習(xí)群這個(gè)例子將引導(dǎo)你在中使用來創(chuàng)建用戶登錄和注冊(cè)的。是的簡稱,可以幫助我們創(chuàng)建用戶認(rèn)證,以此連接前后端。 本文來自pilishen.com----原文鏈接; 歡迎作客我們的php&Laravel學(xué)習(xí)群:109256050 這個(gè)例子將引導(dǎo)你在laravel中使用JWT來創(chuàng)建用戶登錄和注冊(cè)的API。JWT是Json Web Token的簡稱,可以幫助我們創(chuàng)建...

    zzbo 評(píng)論0 收藏0
  • laravel使用JWTAPI認(rèn)證

    摘要:最近項(xiàng)目做認(rèn)證,最終技術(shù)選型決定使用,項(xiàng)目框架使用的是,使用有比較方便使用的開源包。使用安裝,使用的框架版本為,最新穩(wěn)定版本為。 最近項(xiàng)目做API認(rèn)證,最終技術(shù)選型決定使用JWT,項(xiàng)目框架使用的是laravel,laravel使用JWT有比較方便使用的開源包:jwt-auth。 使用composer安裝jwt-auth,laravel使用的框架版本為5.0,jwt-auth最新穩(wěn)定版本...

    SexySix 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<