【问题标题】:Live SDK client secret optional-requirementLive SDK 客户端密码可选要求
【发布时间】:2014-10-11 18:48:31
【问题描述】:

为什么需要客户端密码,但如果您只使用 javascript 客户端,则不需要。

这不合逻辑。有人可以向我解释一下,为什么直接进行 REST 调用时需要密码?

javascript api 不需要“客户端密码”:

WL.init({
    client_id: APP_CLIENT_ID,
    redirect_uri: REDIRECT_URL,
    scope: "wl.signin", 
    response_type: "token"
});

但如果您想直接进行 REST 调用,则需要:

POST https://login.live.com/oauth20_token.srf

Content-type: application/x-www-form-urlencoded

client_id=CLIENT_ID&redirect_uri=REDIRECT_URL&client_secret=CLIENT_SECRET&code=AUTHORIZATION_CODE&grant_type=authorization_code

代码来自:http://msdn.microsoft.com/en-us/library/hh243641.aspx

我假设客户端密码是一项安全功能,如果是这样,为什么通过 js API 的连接可以比直接连接到服务的安全限制更少?所以它看起来像“可选需要”,这取决于上下文,这对我来说是矛盾的,但可能是我错过了一些东西。

【问题讨论】:

    标签: javascript security rest live-sdk onedrive


    【解决方案1】:

    可能是因为服务器端代码为您提供了更多访问权限,例如:

    必填。指定用户登录的范围 同意。对于单个范围,请使用以下格式:范围:“wl.signin”。为了 多个作用域,使用这种格式:作用域:["wl.signin", "wl.basic"]。如果 没有提供范围,使用 WL.init 的范围值。如果没有范围 在 WL.init 或 WL.login 中提供,WL.login 返回错误。笔记 WL.login 可以请求“wl.offline_access”范围,但它需要一个 服务器端实现,并且 WL.init 函数必须设置它的 response_type 属性为“code”。

    基本上,客户端密码为您提供更高的安全权限,因此您可以访问其他无法访问的额外内容。

    注意:您可以通过在实时 sdk 仪表板中将您的应用配置为桌面/移动应用来绕过此限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      相关资源
      最近更新 更多