michalsn/codeigniter-kinde

CodeIgniter 4 框架的 Kinde 集成

v1.0.0 2023-07-28 06:44 UTC

README

Kinde认证提供基本集成。

PHPStan PHPCPD Psalm Rector Deptrac

PHP CodeIgniter

安装

Composer

composer require michalsn/codeigniter-kinde

手动安装

在以下示例中,我们假设该项目文件位于app/ThirdParty/kinde目录。

下载此项目,然后通过编辑app/Config/Autoload.php文件并添加Michalsn\CodeIgniterKinde命名空间到$psr4数组来启用它,如下所示:

<?php

namespace Config;

use CodeIgniter\Config\AutoloadConfig;

class Autoload extends AutoloadConfig
{
    // ...
    public $psr4 = [
        APP_NAMESPACE => APPPATH, // For custom app namespace
        'Config'      => APPPATH . 'Config',
        'Michalsn\CodeIgniterKinde' => APPPATH . 'ThirdParty/kinde/src',
    ];

    // ...

同时,将所需的辅助函数添加到同一文件中的$files数组下。

    // ...
    public $files = [
        APPPATH . 'ThirdParty/kinde/src/Common.php',
    ];

    // ...

数据库

php spark migrate --all

配置

通过查看src/Config/Kinde.php文件来了解可以设置哪些配置变量,并使用.env文件来设置它们。

参考入门文章。

路由

  • 登录
  • 注册
  • 登出
  • 回调

文件

  • kinde

命令

将配置文件复制到应用命名空间。

php spark kinde:publish

辅助函数

  • authenticated()将检查当前用户是否已认证
  • can('permission')将检查当前用户是否有权限
  • user_id()将返回当前用户ID(数据库)
  • user()user('field')将返回当前用户信息(数据库)
  • kinde_user()将返回Kinde用户数组或null

示例

<?php

namespace App\Controllers;

class Home extends BaseController
{
    public function index()
    {
        if (! service('kinde')->isAuthenticated()) {
            return $this->response->setHeader(401)->setBody('401 Unauthorized');
        }

        if (! can('view:home')) {
            return $this->response->setHeader(401)->setBody('Not enough permissions to view this page');
        }

        return view('home/index', $data);
    }
}