如何在 sharepoint 2013 中获取 oauth 访问令牌?

Posted

技术标签:

【中文标题】如何在 sharepoint 2013 中获取 oauth 访问令牌?【英文标题】:How can I get an oauth access token in sharepoint 2013? 【发布时间】:2012-08-02 00:39:50 【问题描述】:

我在这里有这个网站: http://msdn.microsoft.com/en-us/library/jj164022(v=office.15).aspx

某些部分的文字说: 以下 javascript 代码演示了如何使用 JQuery 发出这个返回所有站点列表的 JSON 表示的 GET 请求。它还假设您有一个存储在 accessToken 变量中的有效 OAuth 访问令牌。如果您从应用程序 Web 内部进行此调用,则不需要访问令牌,就像在 SharePoint 托管的应用程序中一样。

jQuery.ajax(
url: http:// site url/_api/web/lists,
type: "GET",
headers: 
"ACCEPT","application/json;odata=verbose",
"Authorization", "Bearer " + accessToken
,
)

具体问题是如何获取访问令牌??

【问题讨论】:

【参考方案1】:

似乎没有办法仅使用 JavaScript 获取访问令牌。您需要使用应用程序来生成访问令牌。有关如何获取令牌的更多信息,请参阅Sharepoint OAuth Tips and FAQs。

【讨论】:

在这种情况下,我们如何在 androidios 设备等客户端访问 REST API?【参考方案2】:

您的整个方法都不正确。在使用 javascript 访问 sharepoint 2013 服务器的 REST 服务时,您不需要访问令牌。您必须改用 Sharepoint 2013 跨域库。

http://msdn.microsoft.com/en-us/library/jj164022.aspx 的页面在显示使用 oauth 令牌的经典 REST 请求后进行了解释:

如果您使用 JavaScript 编写应用程序但使用 SharePoint 2013 跨域库,则此请求看起来会有些不同。在这种情况下,您不需要提供访问令牌。以下代码演示了如果您使用跨域库并希望将列表的 OData 表示形式接收为 XML 而不是 JSON,则此请求的外观。有关使用跨域库的详细信息,请参阅如何:使用跨域库从远程应用程序访问 SharePoint 2013 数据。

这是当前该文章的网址 http://msdn.microsoft.com/en-us/library/fp179927.aspx

这应该是你的正确答案

【讨论】:

如何为通过 REST 访问 SharePoint 列表的应用/服务生成令牌? @AnimaSola 我不知道...我自己搜索了很多答案。 Oauth 似乎仅用于 Sharepoint 应用程序。我最终做的是使用 sharepoint 经典流程对其余调用进行身份验证:向用户指示的 sharepoint 页面显示 web 视图,在用户通过 Microsoft 进行身份验证后获取 FedAuth 和 rTfa cookie,并将它们附加到每个 rest 调用中跨度> 这似乎与使用访问令牌的 Sharepoint 代码示例相矛盾。如果文档中存在使用 Autho 的方法,那么这如何使使用 Autho 不正确。出于我的目的,Sharepoint 跨域库不起作用。我需要使用 Autho。因此,如果有人有这些信息,那对我来说会很棒【参考方案3】: 这回答了在线共享点的问题。 应该是类似的 对于任何带有 OAuth2 的 SharePoint 列表This talks about Postman or Fiddler, but we can modify this for JavaScript / JQuery

【讨论】:

以上是关于如何在 sharepoint 2013 中获取 oauth 访问令牌?的主要内容,如果未能解决你的问题,请参考以下文章

如何从本地 SharePoint 2013 和 ADFS 获取 FedAuth Cookie

在 Sharepoint 2013 sharepoint 托管应用程序中显示 Lync 联系人

SharePoint 2013 - 通过 REST 获取 SPListItem 版本

无法在Sharepoint 2013在线自定义列表中使用SPD获取Lookup字段值

SharePoint 2010 到 SharePoint 2013 的迁移

如何在sharepoint 2013中授予用户权限