From 1fc707ac41808d7638d16717de4498ffd16cc2c1 Mon Sep 17 00:00:00 2001 From: Cam Date: Wed, 10 Jul 2019 14:40:02 -0500 Subject: [PATCH] Added usernameField and env variable to server settings --- README.md | 5 ++++- config/laravel-sso.php | 3 +++ src/LaravelSSOServer.php | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index c10283b..548bcd8 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,10 @@ SSO_BROKER_SECRET= ``` `SSO_SERVER_URL` is your server's http url without trailing slash. `SSO_BROKER_NAME` and `SSO_BROKER_SECRET` must be data which exists in your server's `brokers` table. - +Optionally set the column of your authentication username field on your server ('username' by default) `.env` file: +```shell +SSO_USERNAME_FIELD=email +``` Edit your `app/Http/Kernel.php` by adding `\Zefy\LaravelSSO\Middleware\SSOAutoLogin::class` middleware to `web` middleware group. It should look like this: ```php diff --git a/config/laravel-sso.php b/config/laravel-sso.php index a931f34..d253333 100644 --- a/config/laravel-sso.php +++ b/config/laravel-sso.php @@ -29,6 +29,9 @@ // Table used in Zefy\LaravelSSO\Models\Broker model 'brokersTable' => 'brokers', + // What is the name of the column that users use to login with (generally 'username' or 'email) + 'usernameField' => env('SSO_USERNAME_FIELD', 'username'), + // Logged in user fields sent to brokers. 'userFields' => [ // Return array field name => database column name diff --git a/src/LaravelSSOServer.php b/src/LaravelSSOServer.php index fdde7cb..96617c7 100644 --- a/src/LaravelSSOServer.php +++ b/src/LaravelSSOServer.php @@ -66,7 +66,7 @@ protected function returnJson(?array $response = null, int $httpResponseCode = 2 */ protected function authenticate(string $username, string $password) { - if (!Auth::attempt(['username' => $username, 'password' => $password])) { + if (!Auth::attempt([config('laravel-sso.usernameField') => $username, 'password' => $password])) { return false; } @@ -107,7 +107,7 @@ protected function getBrokerInfo(string $brokerId) protected function getUserInfo(string $username) { try { - $user = config('laravel-sso.usersModel')::where('username', $username)->firstOrFail(); + $user = config('laravel-sso.usersModel')::where(config('laravel-sso.usernameField'), $username)->firstOrFail(); } catch (ModelNotFoundException $e) { return null; }