1.4.0 2020-09-16 13:00 UTC

This package is auto-updated.

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


Laravel authentication using Google Datastore

CircleCI Latest Stable Version License codecov


  • Laravel >= 5.5.0
  • Composer


$ 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


Create user

$userConfig = [
    'name' => 'hoge',
    'email' => '',
    'password' => 'secret'
$userProvider = Auth::createUserProvider('users');
// or

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';


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.


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.