Repository files navigation

Statamic 3.0+Codacy Badge

Two Factor Login for Statamic 3

Statamic 2FA is a middleware addon for Statamic 3 that adds 2FA (2 factor) auth to the control panel of Statamic 3 using time based codes.

Pricing

Statamic 2FA is commercial software. You do not need a licence for development but when you are ready to deploy the site to production please purchase a licence per site on the Statamic Marketplace.

Installation

Install the addon using composer

You can install this addon via composer with the following command or from the Statamic control panel.

composer require kind-work/two-fa

Usage

Add the two_fa field to your user blueprint. Edit your user profile in the control panel (CP) to set up 2FA protection for your account.

title: Usersections:
main:
display: Mainfields:
- handle: namefield:
type: textdisplay: Name
- handle: emailfield:
type: textinput: emaildisplay: 'Email Address'
- handle: rolesfield:
type: user_roleswidth: 50
- handle: groupsfield:
type: user_groupswidth: 50
- handle: avatarfield:
type: assetsmax_files: 1
- handle: two_fafield:
type: two_falocalizable: falsedisplay: 'Two FA'

Force 2FA Login

To force 2FA for all users set an environment variable FORCE_2FA to true.

To force 2FA for specific roles, publish the config file and edit as appropriate.

php artisan vendor:publish --tag="two-fa-config"

QRCode Rendering

By default QR codes are rendered as inline PNG files. This requires the Imagick PHP extension. If you would rather not or can not install Imagick you can render the QR codes as SVGs instead. You can customize this in your configuration file or by setting the environment variable QR_CODE_TYPE to SVG.

Max Attempts

By default accounts are locked out after 5 attempts to enter a 2FA code. You can change this in the config or by setting the environment variable 2FA_MAX_ATTEMPTS.

Remember Time

A user can choose to remember the browser when they enter their 2FA code, so they do not have to re-enter their 2FA code on each login. By default the time to remember the code is 30 days. You can change this default by setting the number of minutes that the browser should be remembered in the config or the environment variable 2FA_REMEMBER_TIME.

Database

If you store your users in a database run the following command to generate a database migration.

php artisan vendor:publish --tag="twofa-migrations"

Changelog

Please see the Release Notes for more information what has changed recently.

Security

If you discover any security-related issues, please email security@kind.work instead of using the issue tracker.

License

This is commercial software. You may use the package for your sites. Each site requires its own license. You can purchase a licence from The Statamic Marketplace.

About

Two Factor Login for Statamic V3

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Statamic 3.0+Codacy Badge

Two Factor Login for Statamic 3

Statamic 2FA is a middleware addon for Statamic 3 that adds 2FA (2 factor) auth to the control panel of Statamic 3 using time based codes.

Pricing

Statamic 2FA is commercial software. You do not need a licence for development but when you are ready to deploy the site to production please purchase a licence per site on the Statamic Marketplace.

Installation

Install the addon using composer

You can install this addon via composer with the following command or from the Statamic control panel.

composer require kind-work/two-fa

Usage

Add the two_fa field to your user blueprint. Edit your user profile in the control panel (CP) to set up 2FA protection for your account.

title: Usersections:
main:
display: Mainfields:
- handle: namefield:
type: textdisplay: Name
- handle: emailfield:
type: textinput: emaildisplay: 'Email Address'
- handle: rolesfield:
type: user_roleswidth: 50
- handle: groupsfield:
type: user_groupswidth: 50
- handle: avatarfield:
type: assetsmax_files: 1
- handle: two_fafield:
type: two_falocalizable: falsedisplay: 'Two FA'

Force 2FA Login

To force 2FA for all users set an environment variable FORCE_2FA to true.

To force 2FA for specific roles, publish the config file and edit as appropriate.

php artisan vendor:publish --tag="two-fa-config"

QRCode Rendering

By default QR codes are rendered as inline PNG files. This requires the Imagick PHP extension. If you would rather not or can not install Imagick you can render the QR codes as SVGs instead. You can customize this in your configuration file or by setting the environment variable QR_CODE_TYPE to SVG.

Max Attempts

By default accounts are locked out after 5 attempts to enter a 2FA code. You can change this in the config or by setting the environment variable 2FA_MAX_ATTEMPTS.

Remember Time

A user can choose to remember the browser when they enter their 2FA code, so they do not have to re-enter their 2FA code on each login. By default the time to remember the code is 30 days. You can change this default by setting the number of minutes that the browser should be remembered in the config or the environment variable 2FA_REMEMBER_TIME.

Database

If you store your users in a database run the following command to generate a database migration.

php artisan vendor:publish --tag="twofa-migrations"

Changelog

Please see the Release Notes for more information what has changed recently.

Security

If you discover any security-related issues, please email security@kind.work instead of using the issue tracker.

License

This is commercial software. You may use the package for your sites. Each site requires its own license. You can purchase a licence from The Statamic Marketplace.

About

Two Factor Login for Statamic V3

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Statamic 3.0+Codacy Badge

Two Factor Login for Statamic 3

Statamic 2FA is a middleware addon for Statamic 3 that adds 2FA (2 factor) auth to the control panel of Statamic 3 using time based codes.

Pricing

Statamic 2FA is commercial software. You do not need a licence for development but when you are ready to deploy the site to production please purchase a licence per site on the Statamic Marketplace.

Installation

Install the addon using composer

You can install this addon via composer with the following command or from the Statamic control panel.

composer require kind-work/two-fa

Usage

Add the two_fa field to your user blueprint. Edit your user profile in the control panel (CP) to set up 2FA protection for your account.

title: Usersections:
main:
display: Mainfields:
- handle: namefield:
type: textdisplay: Name
- handle: emailfield:
type: textinput: emaildisplay: 'Email Address'
- handle: rolesfield:
type: user_roleswidth: 50
- handle: groupsfield:
type: user_groupswidth: 50
- handle: avatarfield:
type: assetsmax_files: 1
- handle: two_fafield:
type: two_falocalizable: falsedisplay: 'Two FA'

Force 2FA Login

To force 2FA for all users set an environment variable FORCE_2FA to true.

To force 2FA for specific roles, publish the config file and edit as appropriate.

php artisan vendor:publish --tag="two-fa-config"

QRCode Rendering

By default QR codes are rendered as inline PNG files. This requires the Imagick PHP extension. If you would rather not or can not install Imagick you can render the QR codes as SVGs instead. You can customize this in your configuration file or by setting the environment variable QR_CODE_TYPE to SVG.

Max Attempts

By default accounts are locked out after 5 attempts to enter a 2FA code. You can change this in the config or by setting the environment variable 2FA_MAX_ATTEMPTS.

Remember Time

A user can choose to remember the browser when they enter their 2FA code, so they do not have to re-enter their 2FA code on each login. By default the time to remember the code is 30 days. You can change this default by setting the number of minutes that the browser should be remembered in the config or the environment variable 2FA_REMEMBER_TIME.

Database

If you store your users in a database run the following command to generate a database migration.

php artisan vendor:publish --tag="twofa-migrations"

Changelog

Please see the Release Notes for more information what has changed recently.

Security

If you discover any security-related issues, please email security@kind.work instead of using the issue tracker.

License

This is commercial software. You may use the package for your sites. Each site requires its own license. You can purchase a licence from The Statamic Marketplace.

About

Two Factor Login for Statamic V3

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Statamic 3.0+Codacy Badge

Two Factor Login for Statamic 3

Statamic 2FA is a middleware addon for Statamic 3 that adds 2FA (2 factor) auth to the control panel of Statamic 3 using time based codes.

Pricing

Statamic 2FA is commercial software. You do not need a licence for development but when you are ready to deploy the site to production please purchase a licence per site on the Statamic Marketplace.

Installation

Install the addon using composer

You can install this addon via composer with the following command or from the Statamic control panel.

composer require kind-work/two-fa

Usage

Add the two_fa field to your user blueprint. Edit your user profile in the control panel (CP) to set up 2FA protection for your account.

title: Usersections:
main:
display: Mainfields:
- handle: namefield:
type: textdisplay: Name
- handle: emailfield:
type: textinput: emaildisplay: 'Email Address'
- handle: rolesfield:
type: user_roleswidth: 50
- handle: groupsfield:
type: user_groupswidth: 50
- handle: avatarfield:
type: assetsmax_files: 1
- handle: two_fafield:
type: two_falocalizable: falsedisplay: 'Two FA'

Force 2FA Login

To force 2FA for all users set an environment variable FORCE_2FA to true.

To force 2FA for specific roles, publish the config file and edit as appropriate.

php artisan vendor:publish --tag="two-fa-config"

QRCode Rendering

By default QR codes are rendered as inline PNG files. This requires the Imagick PHP extension. If you would rather not or can not install Imagick you can render the QR codes as SVGs instead. You can customize this in your configuration file or by setting the environment variable QR_CODE_TYPE to SVG.

Max Attempts

By default accounts are locked out after 5 attempts to enter a 2FA code. You can change this in the config or by setting the environment variable 2FA_MAX_ATTEMPTS.

Remember Time

A user can choose to remember the browser when they enter their 2FA code, so they do not have to re-enter their 2FA code on each login. By default the time to remember the code is 30 days. You can change this default by setting the number of minutes that the browser should be remembered in the config or the environment variable 2FA_REMEMBER_TIME.

Database

If you store your users in a database run the following command to generate a database migration.

php artisan vendor:publish --tag="twofa-migrations"

Changelog

Please see the Release Notes for more information what has changed recently.

Security

If you discover any security-related issues, please email security@kind.work instead of using the issue tracker.

License

This is commercial software. You may use the package for your sites. Each site requires its own license. You can purchase a licence from The Statamic Marketplace.

About

Two Factor Login for Statamic V3

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Statamic 3.0+Codacy Badge

Two Factor Login for Statamic 3

Statamic 2FA is a middleware addon for Statamic 3 that adds 2FA (2 factor) auth to the control panel of Statamic 3 using time based codes.

Pricing

Statamic 2FA is commercial software. You do not need a licence for development but when you are ready to deploy the site to production please purchase a licence per site on the Statamic Marketplace.

Installation

Install the addon using composer

You can install this addon via composer with the following command or from the Statamic control panel.

composer require kind-work/two-fa

Usage

Add the two_fa field to your user blueprint. Edit your user profile in the control panel (CP) to set up 2FA protection for your account.

title: Usersections:
main:
display: Mainfields:
- handle: namefield:
type: textdisplay: Name
- handle: emailfield:
type: textinput: emaildisplay: 'Email Address'
- handle: rolesfield:
type: user_roleswidth: 50
- handle: groupsfield:
type: user_groupswidth: 50
- handle: avatarfield:
type: assetsmax_files: 1
- handle: two_fafield:
type: two_falocalizable: falsedisplay: 'Two FA'

Force 2FA Login

To force 2FA for all users set an environment variable FORCE_2FA to true.

To force 2FA for specific roles, publish the config file and edit as appropriate.

php artisan vendor:publish --tag="two-fa-config"

QRCode Rendering

By default QR codes are rendered as inline PNG files. This requires the Imagick PHP extension. If you would rather not or can not install Imagick you can render the QR codes as SVGs instead. You can customize this in your configuration file or by setting the environment variable QR_CODE_TYPE to SVG.

Max Attempts

By default accounts are locked out after 5 attempts to enter a 2FA code. You can change this in the config or by setting the environment variable 2FA_MAX_ATTEMPTS.

Remember Time

A user can choose to remember the browser when they enter their 2FA code, so they do not have to re-enter their 2FA code on each login. By default the time to remember the code is 30 days. You can change this default by setting the number of minutes that the browser should be remembered in the config or the environment variable 2FA_REMEMBER_TIME.

Database

If you store your users in a database run the following command to generate a database migration.

php artisan vendor:publish --tag="twofa-migrations"

Changelog

Please see the Release Notes for more information what has changed recently.

Security

If you discover any security-related issues, please email security@kind.work instead of using the issue tracker.

License

This is commercial software. You may use the package for your sites. Each site requires its own license. You can purchase a licence from The Statamic Marketplace.

About

Two Factor Login for Statamic V3

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Statamic 3.0+Codacy Badge

Two Factor Login for Statamic 3

Statamic 2FA is a middleware addon for Statamic 3 that adds 2FA (2 factor) auth to the control panel of Statamic 3 using time based codes.

Pricing

Statamic 2FA is commercial software. You do not need a licence for development but when you are ready to deploy the site to production please purchase a licence per site on the Statamic Marketplace.

Installation

Install the addon using composer

You can install this addon via composer with the following command or from the Statamic control panel.

composer require kind-work/two-fa

Usage

Add the two_fa field to your user blueprint. Edit your user profile in the control panel (CP) to set up 2FA protection for your account.

title: Usersections:
main:
display: Mainfields:
- handle: namefield:
type: textdisplay: Name
- handle: emailfield:
type: textinput: emaildisplay: 'Email Address'
- handle: rolesfield:
type: user_roleswidth: 50
- handle: groupsfield:
type: user_groupswidth: 50
- handle: avatarfield:
type: assetsmax_files: 1
- handle: two_fafield:
type: two_falocalizable: falsedisplay: 'Two FA'

Force 2FA Login

To force 2FA for all users set an environment variable FORCE_2FA to true.

To force 2FA for specific roles, publish the config file and edit as appropriate.

php artisan vendor:publish --tag="two-fa-config"

QRCode Rendering

By default QR codes are rendered as inline PNG files. This requires the Imagick PHP extension. If you would rather not or can not install Imagick you can render the QR codes as SVGs instead. You can customize this in your configuration file or by setting the environment variable QR_CODE_TYPE to SVG.

Max Attempts

By default accounts are locked out after 5 attempts to enter a 2FA code. You can change this in the config or by setting the environment variable 2FA_MAX_ATTEMPTS.

Remember Time

A user can choose to remember the browser when they enter their 2FA code, so they do not have to re-enter their 2FA code on each login. By default the time to remember the code is 30 days. You can change this default by setting the number of minutes that the browser should be remembered in the config or the environment variable 2FA_REMEMBER_TIME.

Database

If you store your users in a database run the following command to generate a database migration.

php artisan vendor:publish --tag="twofa-migrations"

Changelog

Please see the Release Notes for more information what has changed recently.

Security

If you discover any security-related issues, please email security@kind.work instead of using the issue tracker.

License

This is commercial software. You may use the package for your sites. Each site requires its own license. You can purchase a licence from The Statamic Marketplace.

About

Two Factor Login for Statamic V3

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Statamic 3.0+Codacy Badge

Two Factor Login for Statamic 3

Statamic 2FA is a middleware addon for Statamic 3 that adds 2FA (2 factor) auth to the control panel of Statamic 3 using time based codes.

Pricing

Statamic 2FA is commercial software. You do not need a licence for development but when you are ready to deploy the site to production please purchase a licence per site on the Statamic Marketplace.

Installation

Install the addon using composer

You can install this addon via composer with the following command or from the Statamic control panel.

composer require kind-work/two-fa

Usage

Add the two_fa field to your user blueprint. Edit your user profile in the control panel (CP) to set up 2FA protection for your account.

title: Usersections:
main:
display: Mainfields:
- handle: namefield:
type: textdisplay: Name
- handle: emailfield:
type: textinput: emaildisplay: 'Email Address'
- handle: rolesfield:
type: user_roleswidth: 50
- handle: groupsfield:
type: user_groupswidth: 50
- handle: avatarfield:
type: assetsmax_files: 1
- handle: two_fafield:
type: two_falocalizable: falsedisplay: 'Two FA'

Force 2FA Login

To force 2FA for all users set an environment variable FORCE_2FA to true.

To force 2FA for specific roles, publish the config file and edit as appropriate.

php artisan vendor:publish --tag="two-fa-config"

QRCode Rendering

By default QR codes are rendered as inline PNG files. This requires the Imagick PHP extension. If you would rather not or can not install Imagick you can render the QR codes as SVGs instead. You can customize this in your configuration file or by setting the environment variable QR_CODE_TYPE to SVG.

Max Attempts

By default accounts are locked out after 5 attempts to enter a 2FA code. You can change this in the config or by setting the environment variable 2FA_MAX_ATTEMPTS.

Remember Time

A user can choose to remember the browser when they enter their 2FA code, so they do not have to re-enter their 2FA code on each login. By default the time to remember the code is 30 days. You can change this default by setting the number of minutes that the browser should be remembered in the config or the environment variable 2FA_REMEMBER_TIME.

Database

If you store your users in a database run the following command to generate a database migration.

php artisan vendor:publish --tag="twofa-migrations"

Changelog

Please see the Release Notes for more information what has changed recently.

Security

If you discover any security-related issues, please email security@kind.work instead of using the issue tracker.

License

This is commercial software. You may use the package for your sites. Each site requires its own license. You can purchase a licence from The Statamic Marketplace.

About

Two Factor Login for Statamic V3

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Statamic 3.0+Codacy Badge

Two Factor Login for Statamic 3

Statamic 2FA is a middleware addon for Statamic 3 that adds 2FA (2 factor) auth to the control panel of Statamic 3 using time based codes.

Pricing

Statamic 2FA is commercial software. You do not need a licence for development but when you are ready to deploy the site to production please purchase a licence per site on the Statamic Marketplace.

Installation

Install the addon using composer

You can install this addon via composer with the following command or from the Statamic control panel.

composer require kind-work/two-fa

Usage

Add the two_fa field to your user blueprint. Edit your user profile in the control panel (CP) to set up 2FA protection for your account.

title: Usersections:
main:
display: Mainfields:
- handle: namefield:
type: textdisplay: Name
- handle: emailfield:
type: textinput: emaildisplay: 'Email Address'
- handle: rolesfield:
type: user_roleswidth: 50
- handle: groupsfield:
type: user_groupswidth: 50
- handle: avatarfield:
type: assetsmax_files: 1
- handle: two_fafield:
type: two_falocalizable: falsedisplay: 'Two FA'

Force 2FA Login

To force 2FA for all users set an environment variable FORCE_2FA to true.

To force 2FA for specific roles, publish the config file and edit as appropriate.

php artisan vendor:publish --tag="two-fa-config"

QRCode Rendering

By default QR codes are rendered as inline PNG files. This requires the Imagick PHP extension. If you would rather not or can not install Imagick you can render the QR codes as SVGs instead. You can customize this in your configuration file or by setting the environment variable QR_CODE_TYPE to SVG.

Max Attempts

By default accounts are locked out after 5 attempts to enter a 2FA code. You can change this in the config or by setting the environment variable 2FA_MAX_ATTEMPTS.

Remember Time

A user can choose to remember the browser when they enter their 2FA code, so they do not have to re-enter their 2FA code on each login. By default the time to remember the code is 30 days. You can change this default by setting the number of minutes that the browser should be remembered in the config or the environment variable 2FA_REMEMBER_TIME.

Database

If you store your users in a database run the following command to generate a database migration.

php artisan vendor:publish --tag="twofa-migrations"

Changelog

Please see the Release Notes for more information what has changed recently.

Security

If you discover any security-related issues, please email security@kind.work instead of using the issue tracker.

License

This is commercial software. You may use the package for your sites. Each site requires its own license. You can purchase a licence from The Statamic Marketplace.

About

Two Factor Login for Statamic V3

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages