>PHP 프레임워크 >Laravel >Laravel을 사용한 API 인증 및 권한 부여: 민감한 데이터 및 운영 보호

Laravel을 사용한 API 인증 및 권한 부여: 민감한 데이터 및 운영 보호

WBOY
WBOY원래의
2023-08-26 14:33:361867검색

Laravel을 사용한 API 인증 및 권한 부여: 민감한 데이터 및 운영 보호

API 인증 및 권한 부여를 위해 Laravel 사용: 민감한 데이터 및 작업 보호

개요:
API(애플리케이션 프로그래밍 인터페이스)는 다양한 시스템 전송 간의 데이터 상호 작용 및 기능을 허용하는 최신 웹 애플리케이션 개발의 중요한 부분입니다. API 애플리케이션에서는 데이터 보안이 매우 중요합니다. Laravel은 민감한 데이터와 작업을 보호하고 무단 액세스를 방지하는 데 도움이 되는 강력한 API 인증 및 권한 부여 기능을 제공하는 인기 있는 PHP 프레임워크입니다.

1. Laravel 설치 및 구성
먼저 Laravel을 설치하려면 작곡가를 사용해야 합니다. 명령줄에서 다음 명령을 실행하세요:

composer global require laravel/installer

설치가 완료된 후 다음 명령을 사용하여 새 Laravel 프로젝트를 생성할 수 있습니다:

laravel new api-auth

프로젝트가 있는 디렉터리를 입력하세요:

cd api-auth

다음으로 우리는 필요합니다 사용자 데이터를 암호화하기 위한 키를 생성합니다. 다음 명령을 실행합니다:

php artisan key:generate

2. API 인증 및 권한 부여 관련 파일 생성

  1. 사용자 모델 생성: Laravel에서는 Eloquent 모델을 사용하여 데이터베이스의 데이터를 관리하는 경우가 많습니다. 다음 명령을 실행하여 사용자 모델을 생성합니다.
php artisan make:model User -m

이 명령은 사용자 모델과 해당 데이터베이스 마이그레이션 파일을 생성합니다.

  1. 사용자 인증 컨트롤러 생성: 다음 명령을 실행하여 사용자 인증 컨트롤러를 생성합니다.
php artisan make:controller AuthController
  1. API 경로 생성: routes/api.php 파일을 편집하고 관련 경로를 정의합니다. API의 경우: routes/api.php文件,定义API的相关路由:
Route::post('login', 'AuthController@login');
Route::post('register', 'AuthController@register');
Route::middleware('auth:api')->group(function () {
    Route::get('user', 'AuthController@user');
    Route::post('logout', 'AuthController@logout');
});

以上路由定义了用户登录、注册、获取用户信息、注销等接口。

  1. 编写用户认证控制器:打开app/Http/Controllers/AuthController.php文件,编写以下代码:
namespace AppHttpControllers;

use IlluminateHttpRequest;
use AppUser;
use IlluminateSupportFacadesAuth;

class AuthController extends Controller
{
    public function register(Request $request)
    {
        $validatedData = $request->validate([
            'name' => 'required|max:55',
            'email' => 'email|required|unique:users',
            'password' => 'required|confirmed'
        ]);

        $validatedData['password'] = bcrypt($request->password);

        $user = User::create($validatedData);

        $accessToken = $user->createToken('authToken')->accessToken;

        return response(['user' => $user, 'access_token' => $accessToken]);
    }

    public function login(Request $request)
    {
        $loginData = $request->validate([
            'email' => 'email|required',
            'password' => 'required'
        ]);

        if (!Auth::attempt($loginData)) {
            return response(['message' => 'Invalid credentials']);
        }

        $accessToken = Auth::user()->createToken('authToken')->accessToken;

        return response(['user' => Auth::user(), 'access_token' => $accessToken]);
    }

    public function user()
    {
        return response(['user' => Auth::user()]);
    }

    public function logout(Request $request)
    {
        $request->user()->token()->revoke();
        return response(['message' => 'Successfully logged out']);
    }
}

以上代码中,我们定义了用户的注册、登录、获取用户信息和注销操作。

三、配置API认证和授权

  1. 配置Guard和Provider:打开config/auth.php文件,找到guardsproviders配置项,根据以下示例进行配置:
'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users'
    ],

    'api' => [
        'driver' => 'passport',
        'provider' => 'users',
    ]
],

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => AppUser::class
    ]
],
  1. 运行数据库迁移:运行以下命令执行生成的数据库迁移:
php artisan migrate
  1. 配置Passport:运行以下命令,发布Passport的配置文件:
php artisan passport:install

执行完毕后,会生成一对加密的公钥和私钥,用来签发和验证访问令牌。

  1. 创建个人访问客户端:运行以下命令创建个人访问客户端:
php artisan passport:client --personal

五、测试API认证和授权

  1. 注册新用户:使用POST请求向http://localhost:8000/api/register发送以下数据:
{
    "name": "John Doe",
    "email": "johndoe@example.com",
    "password": "password",
    "password_confirmation": "password"
}
  1. 登录用户:使用POST请求向http://localhost:8000/api/login发送以下数据:
{
    "email": "johndoe@example.com",
    "password": "password"
}
  1. 获取用户信息:使用GET请求向http://localhost:8000/api/user发送请求,在Headers中添加Authorization: Bearer {access_token},其中{access_token}是登录时返回的访问令牌。
  2. 注销用户:使用POST请求向http://localhost:8000/api/logout发送请求,同样在Headers中添加Authorization: Bearer {access_token}
  3. rrreee
위 경로는 사용자 로그인, 등록, 사용자 정보 얻기, 로그아웃 및 기타 인터페이스를 정의합니다.

    사용자 인증 컨트롤러 작성: app/Http/Controllers/AuthController.php 파일을 열고 다음 코드를 작성합니다. 🎜🎜rrreee🎜위 코드에서, 우리는 사용자 등록, 로그인, 사용자 정보 획득 및 로그아웃 작업을 정의합니다. 🎜🎜3. API 인증 및 승인 구성 🎜🎜🎜Guard 및 공급자 구성: config/auth.php 파일을 열고 guardsproviders를 찾습니다. > 구성 항목, 다음 예에 따라 구성: 🎜🎜rrreee🎜🎜 데이터베이스 마이그레이션 실행: 다음 명령을 실행하여 생성된 데이터베이스 마이그레이션을 실행합니다. 🎜🎜rrreee🎜🎜 Passport 구성: Passport 구성 파일을 게시하려면 다음 명령을 실행합니다. 🎜🎜rrreee🎜실행 완료 후 액세스 토큰을 발급하고 확인하기 위해 암호화된 공개 키와 개인 키 쌍이 생성됩니다. 🎜
      🎜개인 액세스 클라이언트 생성: 다음 명령을 실행하여 개인 액세스 클라이언트를 생성합니다: 🎜🎜rrreee🎜 5. API 인증 및 승인 테스트 🎜🎜🎜새 사용자 등록: POST 요청을 사용하여 http://localhost:8000/api/register는 다음 데이터를 보냅니다: 🎜🎜rrreee🎜🎜로그인 사용자: POST 요청을 사용하여 http://localhost:8000/api/login 다음 데이터: 🎜🎜rrreee🎜🎜 사용자 정보 가져오기: GET 요청을 사용하여 <code>http://localhost:8000/api/user에 요청을 보내고 Authorization: Bearer를 추가합니다. 헤더 의 {access_token}. 여기서 {access_token}은 로그인 시 반환되는 액세스 토큰입니다. 🎜🎜사용자 로그아웃: POST 요청을 사용하여 http://localhost:8000/api/logout에 요청을 보내고 Authorization: Bearer {access_token}도 추가합니다. 헤더에서. 🎜🎜🎜 위에서 우리는 Laravel의 API 인증 및 권한 부여 기능을 통해 민감한 데이터와 운영을 성공적으로 보호했습니다. Passport에서 제공하는 사용자 모델, 컨트롤러, 라우팅 및 기능을 사용하여 API의 인증 및 권한 제어를 쉽게 구현할 수 있습니다. 🎜

위 내용은 Laravel을 사용한 API 인증 및 권한 부여: 민감한 데이터 및 운영 보호의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.