PHPackages                             hadiabedzadeh/ssologin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. hadiabedzadeh/ssologin

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

hadiabedzadeh/ssologin
======================

This package is able to login users to different sites from another site

051PHP

Since Dec 14Pushed 3y ago1 watchersCompare

[ Source](https://github.com/Hadi-Abedzadeh/Ssologin)[ Packagist](https://packagist.org/packages/hadiabedzadeh/ssologin)[ RSS](/packages/hadiabedzadeh-ssologin/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

---

Installation &amp; Usage
------------------------

[](#installation--usage)

> **Requires [PHP 7.4+](https://php.net/releases/)**

Require SSO login using [Composer](https://getcomposer.org):

```
composer require hadiabedzadeh/ssologin
```

Add sso url to `config/app.php` =&gt; 'sso\_url' =&gt; ''

Vendor publishe
---------------

[](#vendor-publishe)

```
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider"
php artisan vendor:publish --provider="Hadiabedzadeh\Ssologin\SsoLoginServiceProvider"
```

You need to publish vendor in your project

Contributing
------------

[](#contributing)

Thank you for considering to contribute to all the contribution

You can have a look at the [CHANGELOG](CHANGELOG.md) for constant updates &amp; detailed information about the changes.

License
-------

[](#license)

SSO login is an open-sourced software licensed under the [MIT license](LICENSE.md).

### Client

[](#client)

```
  public function sso(Request $request)
    {
        $token = $request->token;

        $response = Http::get('inspect.gandomcs.com/service/v1/system-profile', ['token' => $token])->json();
        $email = isset($response['result']['userProfile']['email']) ? $response['result']['userProfile']['email'] : null;
        if (!is_null($email)) {
            $email = DB::selectOne("SELECT * FROM users where email = :email", ['email' => $email]);
        } else {
            return self::response('User not found', Response::HTTP_NOT_FOUND);
        }

        if(isset($email->id)) {
            $user = User::find($email->id);
            $token = auth()->guard('api')->login($user);

            return self::response([
                'access_token' => $token,
                'token_type'   => 'bearer',
                'expires_in'   => (auth()->guard('api')->factory()->getTTL() * 60) * 10,
                'user'         => auth()->guard('api')->user(),
                'roles'        => auth()->guard('api')->user()->getRoleNames(),
                'permissions'  => auth()->guard('api')->user()->getPermissionsViaRoles()->pluck('name'),
            ], \Illuminate\Http\Response::HTTP_OK);
        }

        return Controller::response('login failed', 200);
    }
```

routes.api.php

### Server

[](#server)

```
    Route::group([], function () {
        Route::get('/system-profile',  [SystemController::class, 'profile']);
        Route::get('/system-list',  [SystemController::class, 'list']);
        Route::group(['middleware' => 'jwt.verify'], function ($router) {
            Route::get('/system-token',  [SystemController::class, 'token']);
        });
    });
```

### Server Controller

[](#server-controller)

```
