gpt4 book ai didi

php - 您如何验证单个 Skydrive 帐户而不要求用户提供凭据?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:48:19 25 4
gpt4 key购买 nike

我有一个客户想使用 SkyDrive 作为网站的云存储。本网站不会要求网站用户提供他们的 SkyDrive 帐户以向他们展示他们的文件,但网站所有者会将一些文件存储在 SkyDrive 中并希望与用户共享这些文件登录到他的网站。我的问题是,如何直接从网站的后端 PHP 代码向 SkyDrive API 发送凭据?

Live Connect 上的 API 文档 (http://msdn.microsoft.com/en-us/library/live/hh243647.aspx) 似乎侧重于向用户呈现一个登录表单,以将用户的凭据发送到服务。再一次,这不是我想要的。该网站的用户无需执行任何操作,只需转到该页面,他们就会看到从 SkyDrive 帐户镜像的文件。凭据应存储在服务器上并在用户请求页面时发送。

我问了一个与此类似的关于 Google 文档的问题 (How do I connect to the Google Calendar API without the oAuth authentication?)。这个问题的答案是设置一个临时脚本来获取一个可以反复使用的刷新 token 来进行身份验证。我试过了,它确实有效。但是,我不确定刷新 token 会持续多长时间,也不确定该方法是否适用于 SkyDrive API。

编辑:在做了更多研究之后,Live Connect 文档 (http://msdn.microsoft.com/en-us/library/live/hh826540) 说:

After a user provides consent, Live Connect gives your app a special code, or access token, that lets your app work with that portion of the user's info to which he or she consented. Typically, this access token is good for about one hour. After this hour is up, your app won't be able to work with the user's info anymore—it must ask the user to go through the sign-in and consent process again. To get around this, you can ask the user to consent to the wl.offline_access scope. This gives your app an additional code, called a refresh token, that your app can use to get a new access token whenever it needs one—even after the user signs out—typically, for up to a year. However, the user can revoke your app's access at any time. If a user chooses to revoke consent to your app, no corresponding access tokens or refresh tokens will work—your app must ask the user to go through the sign-in and consent process once again.

所以,看起来刷新 token 会持续一年。这意味着我可以操纵一些东西来获取刷新 token ,存储它,然后在每个页面请求中,使用刷新 token 来获取访问 token 并显示数据。但是,每年一次,我必须为此客户端更新刷新 token 并存储它。这听起来对吗?这是最好的方法吗?

最佳答案

OAuth 2 有一个专门用于此的特殊流程,称为 Client Credentials Grant .

Google 已经通过服务帐户客户端证书实现了这一点,如 this answer 中所述到你的另一个问题。

但是,Microsoft 迄今为止没有 implement that flow ,因此目前最好的方法是使用您已经用于 Google 文档的解决方法。

关于php - 您如何验证单个 Skydrive 帐户而不要求用户提供凭据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12221896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com