sinidika-id / nedo-auth

Nedo认证桥接器

v1.0.1 2020-10-28 18:53 UTC

This package is auto-updated.

Last update: 2024-09-29 05:22:23 UTC


README

Nedo认证是一个使用纯PHP编写的laravel库,提供了一组类,允许您使用Nedo平台用户认证和授权。

文档

步骤:
  1. 从项目的根目录,在终端中运行composer以获取所需包。

    • 示例
       composer require sindika-id/nedo-auth
    
  2. 从项目的根目录运行composer update

  3. 修改config/auth.php使用nedo用户驱动

    ...
    
    'providers' => [
        'users' => [
            'driver' => 'nedo'
        ],
    ],
    
    ...
  4. 此插件将自动创建一些与认证机制相关的控制器和视图。

    • auth/login
    • auth/logout
    • auth/register
    • auth/forgotpass
  5. 要跨所有控制器获取用户信息,可以钩子中间件

      namespace App\Http\Controllers;
    
      use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
      use Illuminate\Foundation\Bus\DispatchesJobs;
      use Illuminate\Foundation\Validation\ValidatesRequests;
      use Illuminate\Routing\Controller as BaseController;
    
      use Illuminate\Support\Facades\Auth;
      use Nedoquery\Api\NedoRequest;
    
      class Controller extends BaseController
      {
          use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
    
          /**
           * Authenticate User
           * 
           * @var \Illuminate\Auth\GenericUser 
           */
          protected $user;
    
          /**
           *
           * Request class to send data to Nedo server
           * 
           * @var \Nedoquery\Api\NedoRequest 
           */
          protected $nedoRequest;
    
          public function __construct(NedoRequest $nedoRequest)
          {
              $this->nedoRequest = $nedoRequest;
    
              $this->middleware(function ($request, $next) {
    
                  $this->user = Auth::user();
                  
                  $this->nedoRequest->setUser($this->user);
    
                  view()->share('user', $this->user);
                  return $next($request);
              });
          }
      }
  6. nedo-auth模块与nedo-query的示例用法

    • 示例
       
      $result = $this->nedoRequest->select('user_username, user_name, user_email')
              ->from('usermanagement')
              ->filter('user_id', 'gt', '1')
              ->order('user_name', 'ASC')
              ->get();
  7. 您可以使用laravel路由器来保护您的页面。

    • 示例
      Route::group(['namespace' => 'Test', 'middleware' => ['notloggedin']], function () {
          Route::get('/', 'HomeController@index');
      });
    
      Route::group(['namespace' => 'Test', 'middleware' => ['loggedin']], function () {
          Route::get('/admin/', 'AdminController@index');
      });
      
  8. 要发布视图,可以在终端中使用vendor:publish命令

      php artisan vendor:publish --provider=Nedoquery\Auth\NedoAuthServiceProvider
    

许可证

Nedo认证遵循MIT许可证。享受吧!