繁体   English   中英

如何在laravel中使用xbox登录时为XBOX定义scope

[英]How to define the scope for XBOX while login with xbox in laravel

这是代码:

"https://login.live.com/oauth20_authorize.srf?client_id=" +
 process.env.MIX_LIVE_CLIENT_ID +
 "&scope=service::user.auth.xboxlive.com::MBI_SSL&response_type=code&redirect_uri=" +
 process.env.MIX_LIVE_REDIRECT_URL +
 "&state=ClientStateGoesHere"

这是我在微软 azure 帐户中创建的 scope。

范围=服务::user.auth.xboxlive.com::MBI_SSL

但是当我打开使用 xbox 登录的页面时出现以下错误。

https://example.com/sign-in?error=invalid_scope&error_description=The%20provided%20value%20for%20the%20input%20parameter%20%27scope%27%20has%20not%20been%20pre-authorized%20for%20this% 20client%20application.&state=ClientStateGoesHere

可选信息

我对此进行了大量研究,发现 Xbox Live Scope 是已在每个客户端中授权的服务范围。 但是服务范围在response_type令牌中不起作用。 它必须设置为response_type: 'code'

您的解决方案

将范围更改为 Azure AD 的实际服务范围,即XboxLive.signin ,另一个可选范围是XboxLive.offline_access以获取刷新令牌。

顺便说一句,我猜service::user.auth.xboxlive.com::MBI_SSL需要 ID@Xbox 才能使用它。

你需要使用XboxLive.SignIn scope,我猜service::user.auth.xboxlive.com::MBI_SSL scope 需要一些 Xbox 开发者程序(比如 ID@Xbox 或 Xbox Creators Program)

这些范围之间有什么区别?

service::user.auth.xboxlive.com::MBI_SSL scope 允许您从用户那里获得授权,用户不必手动授权您的应用程序,但它需要一些 Xbox 合作伙伴计划(或类似的东西) .

XboxLive.SignIn scope 可供所有用户和应用程序使用,但它需要用户手动授权,因为如果您的应用程序未加入任何 Xbox 开发人员计划,则您的应用程序不被视为“受信任”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM