在Laravel中使用xbox登录时如何定义XBOX的范围

问题描述

代码如下:

"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"

这是我在Microsoft azure帐户中创建的范围。

scope = service :: 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 才能使用它。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...