File manager - Edit - /var/www/html/homologBancodetalentos/app/Support/SsoWebSession.php
Back
<?php namespace App\Support; class SsoWebSession { public const ACCESS_TOKEN = 'sso.access_token'; public const TOKEN_TYPE = 'sso.token_type'; /** * Token fictício: sessão web sem Passport (modo cadastro local). */ private const LOCAL_ACCESS_TOKEN_VALUE = '__talent_bank_local_session__'; /** * Token fictício: sessão web autenticada via SSO popup do portal Angra. */ private const ANGRA_SSO_TOKEN_VALUE = '__angra_sso_session__'; /** * Persist OAuth tokens after AuthService::login / register success payload. * * @param array<string, mixed> $payload */ public static function storeTokens(array $payload): void { $token = $payload['access_token'] ?? null; if (! is_string($token) || $token === '') { $nested = data_get($payload, 'data.access_token'); $token = is_string($nested) ? $nested : null; } if (! is_string($token) || $token === '') { return; } $type = $payload['token_type'] ?? data_get($payload, 'data.token_type'); session([ self::ACCESS_TOKEN => $token, self::TOKEN_TYPE => is_string($type) && $type !== '' ? $type : 'Bearer', ]); } public static function forget(): void { session()->forget([self::ACCESS_TOKEN, self::TOKEN_TYPE, 'sso.user_payload', 'sso.profile_photo_path']); } public static function hasToken(): bool { return is_string(session(self::ACCESS_TOKEN)) && session(self::ACCESS_TOKEN) !== ''; } public static function isLocalDevSession(): bool { return session(self::ACCESS_TOKEN) === self::LOCAL_ACCESS_TOKEN_VALUE; } public static function isAngraSsoSession(): bool { return session(self::ACCESS_TOKEN) === self::ANGRA_SSO_TOKEN_VALUE; } /** * Após cadastro local: define sessão como se o usuário estivesse logado no BT (sem SSO). * * @param 'talent-bank-user-company'|'talent-bank-user-candidate' $permission */ public static function bootstrapLocalTalentBankUser(string $document, string $name, string $email, string $permission): void { $payload = [ 'data' => [ 'document' => $document, 'name' => $name, 'email' => $email, 'permissions' => [ 'siati' => [$permission], ], ], ]; session([ self::ACCESS_TOKEN => self::LOCAL_ACCESS_TOKEN_VALUE, self::TOKEN_TYPE => 'Bearer', 'sso.user_payload' => $payload, ]); } /** * Após login via SSO popup do portal Angra: define sessão local sem chamar o AuthService externo. * * @param 'talent-bank-user-company'|'talent-bank-user-candidate' $permission */ public static function bootstrapAngraSsoUser(string $document, string $name, string $email, string $permission): void { $payload = [ 'data' => [ 'document' => $document, 'name' => $name, 'email' => $email, 'permissions' => [ 'siati' => [$permission], ], ], ]; session([ self::ACCESS_TOKEN => self::ANGRA_SSO_TOKEN_VALUE, self::TOKEN_TYPE => 'Bearer', 'sso.user_payload' => $payload, ]); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings