egs33/laravel-datastore-auth

1.4.0 2020-09-16 13:00 UTC

This package is auto-updated.

Last update: 2021-09-16 15:27:31 UTC


README

Laravel authentication using Google Datastore

CircleCI Latest Stable Version License codecov

Requirements

  • Laravel >= 5.5.0
  • Composer

Installation

$ composer require egs33/laravel-datastore-auth
$ php artisan vendor:publish --provider="DatastoreAuth\DatastoreAuthServiceProvider"

Quick Start

Set authentication driver to datastore. For example, in config/auth.php

    'providers' => [
        'users' => [
            'driver' => 'datastore'
        ]
    ],

Then it can use same as Laravel authentication

Usage

Create user

$userConfig = [
    'name' => 'hoge',
    'email' => 'hoge@example.com',
    'password' => 'secret'
];
$userProvider = Auth::createUserProvider('users');
$userProvider->create($userConfig);
// or
DatastoreAuth::create($userConfig);

Get Current User etc.

Use Auth facade. Same as Laravel authentication

$user = Auth::user(); // get current user
$isLoggedIn = Auth::check();

Update User Data

$user['name'] = 'new-name';
$user['group'] = 'new-group';
$user->save();

Config

Config file is config/datastore_auth.php

Default is

[
    'client_config' => [],
    'kind' => 'users',
    'cache' => [
        'isEnabled' => false,
        'keyPrefix' => \DatastoreAuth\DatastoreUserProvider::class . ':',
        'ttl' => null,
    ]
]

client_config is passed to constructor of Google\Cloud\Datastore\DatastoreClient. Please see document of google/cloud-datastore.

kind is kind name of user table.

Cache

The cache is only used when fetch user by id. Cache storage is specified by config/cache.php in your laravel project. ttl is expressed in seconds regardless of the laravel version. If it's null, no expire.

When DatastoreUserProvider#resetPassword, DatastoreUserProvider#save, DatastoreUserProvider#updateRememberToken or User#save is called, cache is cleared. But you can call DatastoreUserProvider#deleteCache if necessary.