rs/auth-onekey

A phpCAS Laravel wrapper for OneKey, an authentication system for healthcare professionals from IQVIA.

v1.2.0 2024-04-30 15:49 UTC

This package is auto-updated.

Last update: 2024-04-30 15:51:48 UTC


README

#Auth/OneKey

A phpCAS Laravel wrapper for OneKey, an authentication system for healthcare professionals from IQVIA

Latest Version on Packagist GitHub Tests Action Status Total Downloads

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.