Bạn thường có thói quen dùng một mật khẩu cho các tài khoản khác nhau, các ứng dụng khác nhau Hay bạn thường sử dụng tên người, tên thú cưng, ngày sinh, nơi ở… hoặc là kết hợp chúng để làm mật khẩu Hoặc thay thế chữ cái trong mật khẩu bằng ký tự đặc biệt. VD: framgia =>
Nếu mật khẩu của bạn rơi vào các trường hợp trên thì nó hoàn toàn có thể bị hacker crack một cách dễ dàng. Còn nếu bạn sử dụng các công cụ tạo mật khẩu để tạo ra những mật khẩu dạng: p%9y#k&yFm? thì rất khó để bị crack, nhưng làm sao để nhớ chúng? Ở dự án hiện tại của mình khách hàng có giới thiệu package USE A PASSPHRASE để tạo mật khẩu, với mục đích vừa dễ nhớ, vừa có độ bảo mật cao. Nên bài viết này mình sẽ giới thiệu đến các bạn: (vì package được viết bằng javacript, mà dự án mình chỉ viết api nên mình cần sử dụng nodejs, nếu chưa từng làm việc với nodejs, bạn có thể tham khảo ở đây: nodejs-giới thiệu, nodejs-modun)

I. Tạo project Laravel

Ta sử dụng phiên bản laravel 5.6 mới nhất tại thời điểm viết bài. Bước 1: Tạo project laravel bằng 1 trong 2 lệnh sau: laravel new laravel_two_factor_auth hoặc composer create-project laravel_two_factor_auth Bước 2: Tạo database: Thêm cột passphrase vào file database/migrations/2014_10_12_000000_create_users_table.php :Schema::create(“users”, function (Blueprint $table) ); Chạy lệnh php artisan migrate để tạo database. Bước 3: Chạy lệnh php artisan make:auth để tạo mẫu signup, login, logout.

II.

Bạn đang xem: Passphrase là gì

Xem thêm: Last Name Là Gì – First Name, Hướng Dẫn điền First

Xem thêm: Flakka Là Gì – Các Loại Ma Túy Mới Xuất Hiện Ở Việt Nam

Server NodeJS

Cài đặt NodeJS với lệnh sau:sudo apt-get update sudo apt-get install nodejs Cài đặt NPM:sudo apt-get install npm Để kiểm tra NPM và NodeJS đã cài đặt được chưa:nodejs -v npm -v Sử dụng npm cài đặt Express:npm install express Và cài đặt Body-parser với câu lệnh:npm install body-parser Cài đặt package USE A PASSPHRASE để tạo cụ mật khẩu ngẫu nhiên cho ứng dụng: Thêm file wordlist.js vào trong thư mục node/passphrase/wordlist.js. Thư mục node/ ngang hàng với thư mục app/. Và file script.js cũng vào thư mục trên node/passphrase/script.js. Nhưng vì ở đây ta sử dụng nodejs chứ ko phải javasript nhưng package, nên ta cần custom lại như sau:// wordlist.js module.exports = “a”, “b”, “c”, “d”, “e”, “f”, “g”, “h”, “wordstar”, “worrying”, “yielding”, “yourself” >; // script.js var wordlist = require(“./wordlist”); var crypto = require(“crypto”); module.exports = return generatedPasswordArray.join(” “); } }; Tạo file server.js với đường dẫn node/server.js Nội dung file này sẽ như sau:var express = require(“express”); var bodyParser = require(“body-parser”); var app = express(); var usePassPhrase = require(“./passphrase/script”); app.use(bodyParser.json()); // support json encoded bodies app.use(bodyParser.urlencoded()); // support encoded bodies “use strict”; app.post(“/passphrase”, function (request, response) ); }); app.listen(3000); Để bắt đầu chạy server nodejs ta dùng lệnh:node node/server.js Một server nodejs sẽ được chạy ở cổng 3000, ở phần dưới ta gọi server nodejs từ server laravel để tạo passphrase.

III. Server laravel

Để gọi server nodejs từ laravel ta sử dụng package guzzlehttp/guzzle

Cài đặt Guzzlehttp với câu lệnh:

composer require guzzlehttp/guzzle

Guzzlehttp sẽ được thêm vào file composer.json:

… “require”: , …

Tiếp đến ta tạo file AppService.php với đường dẫn app/Services/AppService.php

namespace AppServices; use GuzzleHttpClient; use GuzzleHttpExceptionClientException; class AppService public function createPassphrase($data) }

Đến đây thì việc sử dụng AppService rất đơn giản, chẳng hạn như ta tạo user, đồng thời khi đó ta sẽ gọi đến hàm createPassphrase để tạo cụm mật khẩu phục vụ cho việc two factor authentication. Ví dụ ta sẽ sửa file app/Http/Controllers/Auth/RegisterController.php như sau:

... use AppServicesAppService; ... ... protected $appService; public function __construct(AppService $appService) protected function validator(array $data) ... ... protected function create(array $data)

Tất nhiên là bận cần gửi email, hoặc sms thông báo cho user biết passphrase của họ là gì, để họ lưu lại đùng khi cần.

Nếu có bất cứ khó khăn gì có thể liên hệ trực tiếp với mình hoặc tham khảo tài liệu bên dưới.

Tài liệu tham khảo

http://www.useapassphrase.com/

Chuyên mục: Hỏi Đáp