>  기사  >  PHP 프레임워크  >  Laravel이 ApiToken을 사용하여 요청을 인증하는 방법

Laravel이 ApiToken을 사용하여 요청을 인증하는 방법

藏色散人
藏色散人앞으로
2020-06-06 14:40:553607검색

다음 튜토리얼 칼럼인 Getting Started with Laravel에서는 Laravel에서 ApiToken 인증 요청을 사용하는 방법을 소개하겠습니다. 필요한 친구들에게 도움이 되길 바랍니다!

Laravel이 ApiToken을 사용하여 요청을 인증하는 방법

1. 마이그레이션 파일인 데이터베이스/migrations/2014_10_12_000000_create_users_table.php를 엽니다. 사용자 테이블의 구조를 변경해야 합니다.

2. 사용자 테이블에 api_token 필드를 추가해야 합니다. 예, 적절한 위치에 행을 추가하세요

$table->string('api_token', 60)->unique();

3. php artisan migration 명령을 통해 데이터베이스를 구성하고 사용자 테이블을 생성하세요

4. 사용자 테이블에 원하는 대로 레코드를 추가하세요. api_token 필드가 123456 으로 설정되어 있으므로 사용자를 생성하고 나중에 토큰 값 123456을 사용하여 로그인할 수 있습니다.

5. 라우팅 파일로 돌아가서 테스트 경로를 추가합니다. , 그리고 laravel 미들웨어로 보호하세요

Route::group(['middleware' => ['auth.api']], function () { 
  Route::get('/t', function () {
      return 'ok';
  });
});

여기서는 auth.api 미들웨어를 사용하고 있습니다. 미들웨어는 아래 그림과 같이 정의되어 있습니다.

Laravel이 ApiToken을 사용하여 요청을 인증하는 방법

Middleware 파일에 WebToken.php를 생성한 후 Kernel.php 파일의 미들웨어

'auth.api' => \App\Http\Middleware\webToken::class,

6. 다음과 같이 방금 생성한 webToken 미들웨어 코드를 엽니다

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class webToken
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::guard(&#39;api&#39;)->guest()) {
            return response()->json([&#39;code&#39; => 401,&#39;msg&#39; => &#39;未设置token&#39;]);
        }
        return $next($request);
    }
}

코드 중 Auth::guard('api')의 api는 config 폴더에 있는 auth.php 파일입니다.

Laravel이 ApiToken을 사용하여 요청을 인증하는 방법

Laravel이 ApiToken을 사용하여 요청을 인증하는 방법

7. 완료 위 수정 후 URL 경로 /t를 사용하여 서버에 직접 요청을 시작하면 서버는 401 오류와 '토큰이 설정되지 않음'과 같은 메시지를 반환합니다. 이는 이전에 handler() 메서드에서 수행한 작업입니다. 즉, /t는 인증 미들웨어에 의해 보호됩니다. 요청이 이 미들웨어를 정상적으로 통과하려면 토큰을 제공해야 합니다.

8. 이전에 api_token 123456 데이터 조각으로 사용자 테이블에 추가했으므로 이제 서버에 다시 /t를 요청하지만 이번에는 api_token을 추가합니다. 이는

…/t?api_token=123456

정상적인 상황에서는 서버가 반환합니다. 'ok'는 인증 미들웨어가 이 요청을 통과하도록 허용한다는 의미입니다. 123456을 다른 값으로 변경하면 이 요청은 인증 미들웨어를 통과할 수 없습니다.

더 많은 laravel 프레임워크 기술 기사를 보려면 laravel튜토리얼을 방문하세요.

위 내용은 Laravel이 ApiToken을 사용하여 요청을 인증하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제