承接 sinbadxiii/phalcon-foundation-auth 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

sinbadxiii/phalcon-foundation-auth

Composer 安装命令:

composer require sinbadxiii/phalcon-foundation-auth

包简介

Foundation for Phalcon Auth

README 文档

README

Базоый набор для работы аутентификации sinbadxiii/phalcon-auth из коробки.

В данной библиотеки присутствуют роуты, контроллеры, мидлвары для организации регистрации и авторизации пользователей.

Software License Packagist Downloads Latest Version

Installation

Phalcon 4 or Phalcon 5

PHP 7.2-8.0.

Require the project using composer:

composer require "sinbadxiii/phalcon-foundation-auth:^v0.0.3"

Run helper script

vendor/bin/phauth -c

Который скопирует контроллеры и middleware в ваше приложение, для более гибкого использования.

Если ваше приложение имеет нестандартные пути, то следует указать путь к папке с приложением (по умолчанию "app"), например укажем что у нас вместо папки app используется папка src.

vendor/bin/phauth -c -b src

Так же, если изменилась папка с контроллерами (по умолчанию "controllers" в app), то укажем новую папку, например Controllers:

vendor/bin/phauth -c -b src -s Controllers

После копирования в папке контроллеров появится папка Auth с контроллерами LoginController, RegisterController и пр.

А в корне app появится папка Security, в которой будет лежать мидлвар Authenticate, для проверки авторизации пользователя.

В сервисах нужно будет зарегистрировать провайдер Auth

$di->setShared("auth", function () {
    return new Sinbadxiii\PhalconAuth\Auth();
});

или

$authProvider = new \Sinbadxiii\PhalconAuth\AuthProvider();
$authProvider->register($di);

а в диспетчере приаттачить мидлвар

$di->setShared('dispatcher', function () use ($di) {

    $dispatcher = new Dispatcher();
    $eventsManager = $di->getShared('eventsManager');
    $eventsManager->attach('dispatch', new App\Security\Authenticate());
    $dispatcher->setEventsManager($eventsManager);

    return $dispatcher;
});

В файл вашего роутер добавить

<?php

use Sinbadxiii\PhalconFoundationAuth\Routes as AuthRoutes;


$router = $di->getRouter();

...

$router->mount(AuthRoutes::routes());

...

$router->handle($_SERVER['REQUEST_URI']);

Так же нужно будет проследить, чтобы уже имелись следующие сервис провайдеры:

  • session
  • cache
  • security
  • cookies
$di->setShared('session', function () {
    $session = new SessionManager();
    $files = new SessionAdapter([
        'savePath' => sys_get_temp_dir(),
    ]);
    $session->setAdapter($files);
    $session->start();

    return $session;
});

$di->setShared("cache", function () {

    $configCache = $this->getConfig()->path("cache");

    $serializerFactory = new Phalcon\Storage\SerializerFactory();
    $adapterFactory    = new Phalcon\Cache\AdapterFactory($serializerFactory);

    $adapter           = $adapterFactory->newInstance(
        $configCache->default, $configCache->options->toArray(),
    );

    return new Phalcon\Cache($adapter);
});

$di->set("security", function ()  use ($di) {
        $security = new Phalcon\Security();
        $security->setDI($di);
        return $security;
    }
);

//лучше всего шифровать данные кук
$di->set('cookies', function (){
        $cookies = new Phalcon\Http\Response\Cookies();
        $cookies->useEncryption(true);
        $salt = $this->getConfig()->path('app.key');
        $cookies->setSignKey($salt);
        return $cookies;
    }
);

либо воспользоваться сервисами из библиотеки:

$securityProvider = new \Sinbadxiii\PhalconFoundationAuth\Providers\SecurityProvider();
$securityProvider->register($di);

$cookieProvider = new \Sinbadxiii\PhalconFoundationAuth\Providers\CookiesProvider();
$cookieProvider->register($di);

а в config иметь доступ к настройкам cache, например Phalcon Redis Adapter

'cache' => [
        'default' => 'redis',
        'options' => [
            'options' => [
                'defaultSerializer' => 'Json',
                'scheme' => 'tcp',
                'host'   => '127.0.0.1',
                'port'   => 6379,
                'lifetime' => 3600,
            ],
        ]
    ]

License

The MIT License (MIT). Please see License File for more information.

sinbadxiii/phalcon-foundation-auth 适用场景与选型建议

sinbadxiii/phalcon-foundation-auth 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10 次下载、GitHub Stars 达 1, 最近一次更新时间为 2021 年 08 月 12 日, 在 PHP 生态内属于活跃度较高的组件。

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

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

围绕 sinbadxiii/phalcon-foundation-auth 我们能提供哪些服务?
定制开发 / 二次开发

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

BUG 修复 & 性能优化

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

项目外包 & 长期维护

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

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

统计信息

  • 总下载量: 10
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-08-12