imarc/craft-password-protection 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

imarc/craft-password-protection

Composer 安装命令:

composer require imarc/craft-password-protection

包简介

Password protect any page on the CMS.

README 文档

README

This is a Craft CMS plugin that allows for password protecting any page in your CMS intuitively and without any hassle.

Screenshot

Requirements

This plugin requires Craft CMS 3.0.0-beta.23 or later.

Installation

To install the plugin, follow these instructions.

  1. Open your terminal and go to your Craft project:

     cd /path/to/project
    
  2. Then tell Composer to load the plugin:

     composer require imarc/craft-password-protection
    
  3. In the Control Panel, go to Settings → Plugins and click the “Install” button for Password Protection.

Configuring Password Protection

Default Password

When you set a default password that value will be used as a default for any page where Lock Screen is enabled and the password field is left empty. When this setting it left empty and no password is provided for a lock screen then the lock screen will automatically be disabled.

Password Cookie Duration

This setting defines how long the user will be remembered for. The value entered is in seconds, so for example to get one day you would do 86400. Default is 1 day.

Template

This allows for defining of a custom login page. Simply create a template in your project where you have a form with a field that is named password_protect and then define the route for that template in the settings for password protect. For a template located in tempalates/password-protect/login.twig the path entered would be password-protect/login or /password-protect/login. Here is an example of a simple template:

<form method="POST">
    <h1>{{ 'Enter Password'|t }}</h1>
    <div>
        {{ csrfInput() }}
        
        {% set message = craft.app.session.getFlash('protect_error') %}
        {% if message|length > 0 %}
            <div class="alert">
                <p class="error">{{ message }}</p>
            </div>
        {% endif %}
        
        <input type="password" name="protect_password">
        <input type="submit" value="{{ 'Submit'|t}}">
    </div>
</form>

Using Password Protection

To start using Password Protection on a page simply login to the admin panel, then go to Entries and click the entry that you would like to protect. Once on the edit page on the right side of the screen you will see a lightswitch labeled 'Enable Password Protect'. Just toggle it on/off and enter a passphrase if you want that page protected. When you're done don't forget to click save in the top right and then you are ready to go!

Now when users go to that page they will get prompted with a default password page, or a custom password page if defined. Screenshot

Note

Once a user enters a password correctly, a cookie will be stored and they won't have to re-enter the passphrase until the cookie expires. Also any user that is logged in will automatically be granted access to ALL password protected pages. It's on the road map to allow customization of which users will be prompted on certain pages.

Password Protection Roadmap

Some things to do, and ideas for potential features:

  • Allow customization of which logged in users will be prompted for a password on certain pages

Brought to you by Imarc

imarc/craft-password-protection 适用场景与选型建议

imarc/craft-password-protection 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.36k 次下载、GitHub Stars 达 2, 最近一次更新时间为 2020 年 08 月 31 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「cms」 「Craft」 「craftcms」 「craft-plugin」 「password protection」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 imarc/craft-password-protection 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 imarc/craft-password-protection 我们能提供哪些服务?
定制开发 / 二次开发

基于 imarc/craft-password-protection 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 2.36k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 3
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: proprietary
  • 更新时间: 2020-08-31