PHP code example of j-oppenhuis / laravel-saml2
1. Go to this page and download the library: Download j-oppenhuis/laravel-saml2 library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
j-oppenhuis / laravel-saml2 example snippets config/app.php
bash
php artisan package:discover
php artisan vendor:publish --tag="saml_config"
config/filesystem.php
php artisan laravel-saml:generate-meta
'sp' => [
//Tableau
'https://sso.online.tableau.com/public/sp/SSO?alias=xxxx-xxxx-xxxx-xxxx-xxxxxxxx' => [
'entity-id' => 'https://sso.online.tableau.com/public/sp/metadata?alias=xxxx-xxxx-xxxx-xxxx-xxxxxxxx',
'certificate' => 'MIICozC........dUvTnGP18g=='
],
//A nifty testing service provider
'https://sptest.iamshowcase.com/acs' => [
]
],
resources/views/auth/login.blade.php
app/Http/Controllers/Auth/LoginController.php
use App\Http\Controllers\Controller;
use KingStarter\LaravelSaml\Http\Traits\SamlAuthenticatesUsers;
class LoginController extends Controller
{
...
/**
* The user has been authenticated.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return mixed
*/
protected function authenticated(Request $request, $user)
{
if(Auth::check() && isset($request['SAMLRequest'])) {
$this->handleSamlLoginRequest($request);
}
return redirect()->intended($this->redirectPath());
}
.....
app/Http/Middleware/RedirectIfAuthenticated.php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
use Pkeogan\LaravelSaml\Http\Traits\SamlAuth;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class RedirectIfAuthenticated
{
use SamlAuth;
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle(Request $request, Closure $next, $guard = null)
{
if(Auth::check() && isset($request['SAMLRequest'])){
$saml = $this->handleSamlLoginRequest($request);
return new Response(view('saml::post')->withSaml($saml));
}
if(Auth::guard($guard)->check() && !isset($request['SAMLRequest']) ) {
return redirect('/');
}
return $next($request);
}
}
APP_LOG_LEVEL