Hello,xin chào mọi người! Hôm nay, Tricker Channel xin chia sẻ với anh em cách tạo một License Key nha.
Như mọi người đã biết, việc bảo mật theme của chúng ta rất quan trọng, đặc biệt khi bán hoặc chia sẻ theme mà sợ bị phát tán quá nhiều. Để bảo vệ theme của chúng ta và tránh việc bị chia sẻ rộng rãi, chúng ta cần phải tạo License Key. Dưới đây là cách thực hiện:
Cách tạo License Key cho template Blogger sử dụng JavaScript |
Cách hoạt động của License Key
Cách hoạt động của License Key rất đơn giản. Bạn sẽ lưu thông tin để tạo License Key trên Google Script để tăng tính bảo mật. Từ thông tin đó, bạn sẽ chuyển nó sang dạng mã hóa Base64, ví dụ như: dFu5d8WerUWerZN3OHf=
.
Mặc dù bạn cũng có thể lưu thông tin này trên GitHub, nhưng cách đó rất dễ bị người khác biết và thay đổi. Vì vậy, sử dụng Google Script sẽ an toàn hơn.
License Key sẽ do bạn tự quản lý và mỗi License Key chỉ sử dụng được trên một blog cố định.
Cách tạo Google Script chứa thông tin License Key
License Key cho template Blogger |
function doGet() { var trickerchannel = ContentService.createTextOutput(); trickerchannel.append('{"user":[{"no":0,"name":"","url":"","id":"","code":""},{"no":1,"name":"","url":"","id":"","code":""},{"no":2,"name":"","url":"","id":"","code":""},{"no":3,"name":"","url":"","id":"","code":""},{"no":4,"name":"","url":"","id":"","code":""},{"no":5,"name":"","url":"","id":"","code":""},{"no":6,"name":"","url":"","id":"","code":""},{"no":7,"name":"","url":"","id":"","code":""},{"no":8,"name":"","url":"","id":"","code":""},{"no":9,"name":"","url":"","id":"","code":""},{"no":10,"name":"","url":"","id":"","code":""}]}'); return trickerchannel; }
License Key cho template Blogger |
{"no":0,"name":"","url":"","id":"","code":""}
no
là số thứ tự, url
là url của blog kích hoạt key, id
là id của blog kích hoạt key, code
đây sẽ là thông tin để tạo license key. Ví dụ 1 object như sau:
{"no":0,"name":"trickerchannel","url":"trickerchannelvn.blogspot.com","id":"5611690007214223582","code":"trickerchannel"}
- Chọn Deploy (Triển Khai) và tiếp tục chọn New deployment (Tùy chọn Triển Khai).
- Một popup sẽ hiện lên, tại cột Select type, chọn biểu tượng bánh răng cưa và chọn Web app (Ứng dụng web).
- Tại cột Configuration, thiết lập như sau:
License Key cho template Blogger |
Sau khi cấu hình xong, các bạn chọn Deploy. Tiếp theo, URL của Web app sẽ hiện ra. Hãy lưu URL này vào notepad hoặc một nơi nào đó để sử dụng sau.
Để thêm một object thông tin license key mới:
- Thêm hoặc sửa một object tương tự như trên.
- Tại Bước 3, chọn Deploy và sau đó chọn Manage deployments.
- Một popup sẽ hiện lên, tại cột Configuration, chọn biểu tượng cây bút (Edit).
- Tại mục Version, chọn New version và bấm Deploy.
Thêm code JavaScipt kiểm tra giấy phép vào template
<body>
.<script><b:eval expr='"const blogID='" + data:blog.blogId + "';"'/></script>
</body>
.
<script>//<![CDATA[ var licensekey = "licensekey"; //]]></script>
licensekey
bằng License Key mà bạn đã tạo.<script>//<![CDATA[ var e, s = "https://trickerchannelvn.blogspot.com/"; function o() { window.alert("Invalid License Key"), document.body.innerHTML = "", window.location.href = s } try { e = atob(licensekey) } catch (e) { try { o() } catch (e) { window.location.href = s } } var n = e.split("-"), l = n[0]; if (void 0 === (n = n[1])) try { o() } catch (e) { window.location.href = s } str = [n], getAJ({ url: "Web app URL", async: !0, success: function (e) { var n = JSON.parse(e).user[str]; if (void 0 === n) try { o() } catch (e) { window.location.href = s } var u = n.id, d = n.code, a = n.url; try { if (blogID + l === u + d && 0 != function (e) { if (-1 == window.location.pathname.indexOf("/b/preview") && -1 == window.location.pathname.indexOf("/b/blog-preview")) return e == window.location.hostname }(a)) return void console.log('Licensed to: ' + n.name + ', Licensed for: ' + n.url); try { o() } catch (e) { window.location.href = s } } catch (e) { try { o() } catch (e) { window.location.href = s } } } }) function getAJ(e) { var r = new XMLHttpRequest; try { r = new XMLHttpRequest } catch (t) { try { r = new ActiveXObject("Msxml2.XMLHTTP") } catch (t) { try { r = new ActiveXObject("Microsoft.XMLHTTP") } catch (t) { return console.warn("Something went wrong!"), !1 } } } r.onreadystatechange = function () { var n; 4 == r.readyState && (200 == r.status ? (n = r.responseText, e.success(n)) : "function" == typeof e.error && e.error(r)) }, r.open("GET", e.url, e.async), r.send() } //]]></script>
<script>//<![CDATA[ ... //]]></script>
bằng một số công cụ sau hoặc theo cách mã hóa của bạn:Các tạo License Key
{"no":0,"name":"Tricker Channel Việt Nam","url":"trickerchannelvn.blogspot.com","id":"5611690007214223582","code":"TrickerChannel"}