Chia sẻ cách sử dụng một module Laravel API (Laravel API Key Auth)

laravel api

Hướng dẫn các bước cài đặt

Trước tiên chạy lệnh cmd sau:

composer require ejarnutowski/laravel-api-key

Thêm đoạn code khai báo trong mảng providers trong file config/app.php

'providers' => [
    ...
    Ejarnutowski\LaravelApiKey\Providers\ApiKeyServiceProvider::class,
],

 Chép các file trong migration vào database/migrations với lệnh sau:

$ php artisan vendor:publish

Chạy lệnh thực thi các file tạo bảng dữ liệu:

$ php artisan migrate

Sau khi thực thi lệnh sẽ tạo 3 bảng sau:

api_keys
api_key_access_events
api_key_admin_events

Chạy lệnh tạo một Key ngẫu nhiên:

php artisan apikey:generate {name}

 Ví dụ: Tạo một key với tên là app1 (Lưu ý: Tên không được có ký tự đặt biệt)

$ php artisan apikey:generate app1
  
// API key created
// Name: app1
// Key: 0ZdNlr7LrQocaqz74k6usQsOsqhqSIaUarSTf8mxnHuQVh9CvKAfpUy94VvBmFMq

 Cách thay đổi trạng thái sử dụng cho key.

Vô hiệu hóa key vớí lệnh cmd sau:

$ php artisan apikey:deactivate app1
  
// Deactivated key: app1

 

Kích hoạt key với lệnh cmd sau:

$ php artisan apikey:activate app1
  
// Activated key: app1

 

Cách xóa một key với lệnh cmd sau:

$ php artisan apikey:delete app1
  
// Are you sure you want to delete API key 'app1'? (yes/no) [no]:
// > yes
  
// Deleted key: app1

 

Cách hiển thị danh sách các key với dòng lệnh cmd hoặc có thể vào cơ sở dư liệu xem bảng dữ liệu "api_keys".

$ php artisan apikey:list -D
 
// +----------+----+-------------+---------------------+------------------------------------------------------------------+
// | Name     | ID | Status      | Status Date         | Key                                                              |
// +----------+----+-------------+---------------------+------------------------------------------------------------------+
// | app1     | 5  | deleted     | 2017-11-03 13:54:51 | 0ZdNlr7LrQocaqz74k6usQsOsqhqSIaUarSTf8mxnHuQVh9CvKAfpUy94VvBmFMq |
// | app2     | 1  | deleted     | 2017-11-02 22:34:28 | KuKMQbgZPv0PRC6GqCMlDQ7fgdamsVY75FrQvHfoIbw4gBaG5UX0wfk6dugKxrtW |
// | app3     | 3  | deactivated | 2017-11-02 23:12:34 | IrDlc7rSCvUzpZpW8jfhWaH235vJAqFwyzVWpoD0SLGzOimA6hcwqMvy4Nz6Hntn |
// | app4     | 2  | active      | 2017-11-02 22:48:13 | KZEl4Y2HMuL013xvg6Teaa7zHPJhGy1TDhr2zWzlQCqTxqTzyPTcOV6fIQZVTIU3 |
// +----------+----+-------------+---------------------+------------------------------------------------------------------+

 

Cách sử dụng:

Yêu cầu khai báo khóa API: có 2 cách

Cách yêu cầu khai báo tại Route.

Route::get('api/user/1', function () {
    //
})->middleware('auth.apikey');

 

Cách yêu cầu khai báo tại Controller.

class UserController extends Controller
{
    /**
     * Instantiate a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth.apikey');
    }
}

 

Đường dẫn chỉ cho phép truy cập với khai báo header "X-Authorization" có giá trị là khóa đã kích hoạt.

X-Authorization: KuKMQbgZPv0PRC6GqCMlDQ7fgdamsVY75FrQvHfoIbw4gBaG5UX0wfk6dugKxrtW

 

Trường hợp với khóa chưa được khai báo hoặc khóa chưa được kích hoạt sẽ trả về giá trị như sau:

{
    "errors": [
        {
            "message": "Unauthorized"
        }
    ]
}

 

Nhật ký được lưu lại:

Mỗi yêu cầu khóa API vượt qua thành công sẽ được ghi lại trong bảng api_key_access_events với thông tin sau: api_key_id, ip_address, url, created_at, updated_at

Bất cứ khi nào một khóa API được tạo, kích hoạt, hủy kích hoạt hoặc xóa, một bản ghi sẽ được ghi vào bảng api_key_admin_events. Mỗi bản ghi chứa các thông tin sau: api_key_id, ip_address, event, created_at, updated_at

Đoạn code PHP thực thi link API và hiển thị kết quả trả về:

<?php
     $get_url = '{put_url_here}';
$ch = curl_init($get_url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-Authorization: {key}'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
var_dump($result);
?>

 

Chia sẻ: Ngụy Kim Hưng

Tham khảo link nguồn: Authorize requests to your Laravel application with API keys 

Thêm DataTable vào DataBase SQL

Bước 1: Định nghĩa một kiểu bảng mới trong SQL. 

CREATE TYPE [dbo].[MyTableType] AS TABLE( [Id] int NOT NULL, [Name] [nvarchar](128) NULL )

Bước 2: Tạo một store procedure

CREATE PROCEDURE [dbo].[InsertTable]

@myTableType MyTableType readonly

AS BEGIN

insert into [dbo].Records select * from @myTableType

END

Bước 3: Thực thi store procedure InsertTable với parameter là một datatable cần insert vào database

using (var command = new SqlCommand("InsertTable") {CommandType = CommandType.StoredProcedure})

{ var dt = new DataTable();

//create your own data table

command.Parameters.Add(new SqlParameter("@myTableType", dt));

SqlHelper.Exec(command); }

Kiểm tra trường có thể convert sang datetime?

 

 

sql

Cách kiểm tra một trường kiểu nvarchar với định dạng ngày/tháng có thể chuyển đổi sang kiểu datetime trong SQL server? Để kiểm tra ta dùng lệnh select với điều kiện ISDATE(TenTruong) = 0, nếu trả về là rỗng thì trường này hoàn toàn có thể convert sang datetime và ngược lại. VD: select * from TiepNhanHangHoa where ISDATE(Images)=0.

Tự thiết kế giao diện Wordpress, trang con Wordpress nhanh chóng bằng plugin Brizy.

Tự thiết kế giao diện Wordpress, trang con Wordpress nhanh chóng bằng plugin Brizy.

Bước 1: Vào link: https://wordpress.org/plugins/brizy để download plugin Brizy và cài đặt plugin vào Wordpress.

Bước 2: Sau khi cài đặt thành công vào Wordpress, ta bắt đầu tiền hành thiết kế giao diện trang web.

W1

Activate Brizy For: Plugin Brizy có hiển thi trong trang nào. Mặc định Plugin sẽ hiển thị trên trang và trong bài viết.

Bước 3: Tại giao diện templates, chọn Add new để tạo theme mới.

W2

Bước 4: Đặt tên cho Template và chọn Edit with để tới với giao diện thiết kế.

W3

Bước 5: Tai giao diện Brizy, thiết kế và cài đăt giao diện như mong muốn.

W4

Đây là giao diện mẫu được thiết kế từ plugin Brizy.

W5

Chúc các bạn thành công.

Người chia sẽ: Nguyễn Duy.