修复请求的 scope没有被 Laravel Passport 正确注册

用 Laravel Passport + League OAuth2 Server + yggdrasil-connect 插件时,请求的 scope(如 Yggdrasil.PlayerProfiles.Select、Yggdrasil.Server.Join)没有被 Laravel Passport 正确注册
This commit is contained in:
521141 2025-06-26 13:23:50 +08:00 committed by GitHub
parent 1985ce6ff8
commit b0f59652b4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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']);
}