rs / auth-onekey
A phpCAS Laravel wrapper for OneKey, an authentication system for healthcare professionals from IQVIA.
Installs: 1 999
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 4
Forks: 0
Open Issues: 0
Requires
- php: ^8.0
- ext-json: *
- apereo/phpcas: ~1.6.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.3
- orchestra/testbench: ^8.0
- phpunit/phpunit: ^10.0
- psalm/plugin-laravel: ^2.0
- vimeo/psalm: ^5.0
README
#Auth/OneKey
A phpCAS Laravel wrapper for OneKey, an authentication system for healthcare professionals from IQVIA
This repo can be used to provide SSO authentication with [OneKey] (https://www.iqvia.com/locations/united-states/solutions/life-sciences/information-solutions/essential-information/onekey-reference-assets/onekey-web).
Installation
You can install the package via composer:
composer require rs/auth-onekey
But default, the package is set to the debug = false
and live = true
mode. The latter determines the provider url that the client is redirected to (live = true
- 'www.owa-secure.com', live = false
- 'www.rowa-secure.com') If you would like to override it, publish the config file:
php artisan vendor:publish --tag=onekey-config
Once the onekey.php
config file has been published, update your .env
file:
//.env ONE_KEY_DEBUG=<boolean> ONE_KEY_LIVE=<boolean>
Usage
Register your route
//web.php Route::get('onekey/callback', [OneKeyLoginController::class, 'handleProviderCallback']);
Then, implement the handleProviderCallback()
method in your controller. For example:
//Http\Controllers\OneKeyLoginController.php use RedSnapper\OneKey\OneKeyProvider; //..// public function handleProviderCallback(OneKeyProvider $provider) { // Get OneKey user from the provider $providerUser = $provider->user(); //Map the one-key user with your User model, save in DB // or perform any other action $user = new User([ 'id' => $providerUser->getId(), 'name' => $providerUser->getFullName(), 'email' => $providerUser->getEmail(), 'guard' => 'web' ]); session()->put($user->guard, $user->toArray()); auth($user->guard)->login($user); return redirect()->intended(); }
###All available methods for getting user data:
$user = $provider->user(); $user->getId(); //?string $user->getEmail(); //?string $user->getFirstName(); //?string $user->getLastName(); //?string $user->getFullName(); //?string $user->getCity(); //?string $user->getProfession(); //?string $user->getPhone(); //?string $user->isHCP(); //bool $user->trustLevel(); //int $user->getRaw(); //array
Testing
vendor/bin/phpunit
or
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
License
The MIT License (MIT). Please see Licence File for more information.