getId(), email: $socialiteUser->getEmail(), name: $socialiteUser->getName(), avatar: $socialiteUser->getAvatar(), ); } public static function fromProxyAuthRequest(Request $request): self { $identifier = $request->header(config('koel.proxy_auth.user_header')); $email = filter_var($identifier, FILTER_VALIDATE_EMAIL) ?: "$identifier@reverse.proxy"; return new self( provider: 'Reverse Proxy', id: $identifier, email: $email, name: $request->header(config('koel.proxy_auth.preferred_name_header')) ?: $identifier, avatar: null, ); } public static function assertValidProvider(string $provider): void { Assert::oneOf($provider, ['Google', 'Reverse Proxy']); } }