From b0f59652b4f1f5a6faee27a0ab9450d02db1f277 Mon Sep 17 00:00:00 2001 From: 521141 <183057865+521141@users.noreply.github.com> Date: Thu, 26 Jun 2025 13:23:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AF=B7=E6=B1=82=E7=9A=84?= =?UTF-8?q?=20scope=E6=B2=A1=E6=9C=89=E8=A2=AB=20Laravel=20Passport=20?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 用 Laravel Passport + League OAuth2 Server + yggdrasil-connect 插件时,请求的 scope(如 Yggdrasil.PlayerProfiles.Select、Yggdrasil.Server.Join)没有被 Laravel Passport 正确注册 --- app/Providers/AuthServiceProvider.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index 4f786559..ccbd477a 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -38,10 +38,19 @@ class AuthServiceProvider extends ServiceProvider 'ReportsManagement.Read' => 'auth.oauth.scope.reports-management.read', 'ReportsManagement.ReadWrite' => 'auth.oauth.scope.reports-management.readwrite', ]; - + // 添加 Yggdrasil Connect 插件的作用域 + $yggdrasilScopes = [ + 'openid' => 'LittleSkin\\YggdrasilConnect::scopes.openid', + 'profile' => 'LittleSkin\\YggdrasilConnect::scopes.profile', + 'email' => 'LittleSkin\\YggdrasilConnect::scopes.email', + 'offline_access' => 'LittleSkin\\YggdrasilConnect::scopes.offline-access', + 'Yggdrasil.PlayerProfiles.Read' => 'LittleSkin\\YggdrasilConnect::scopes.player-profiles.read', + 'Yggdrasil.PlayerProfiles.Select' => 'LittleSkin\\YggdrasilConnect::scopes.player-profiles.select', + 'Yggdrasil.Server.Join' => 'LittleSkin\\YggdrasilConnect::scopes.server.join', + ]; $scopes = Cache::get('scopes', []); - Passport::tokensCan(array_merge($defaultScopes, $scopes)); + Passport::tokensCan(array_merge($defaultScopes, $yggdrasilScopes, $scopes)); Passport::setDefaultScope(['User.Read']); }