我正在修改OneDrive API。

在此处查找代码https://github.com/onedrive/onedrive-sdk-csharp

具体来说就是OneDrive Api浏览器。

我没有针对该特定主题的正式教育(身份验证)。

我想知道,第一次登录后如何保持身份验证?也就是说,在似乎每次都要查询URI以获得 token 的情况下,我将如何存储登录信息?

例如,当运行OneDrive API浏览器解决方案时,您必须在每次运行该应用程序时登录。如果我想将凭据保存在某个文本文件中,该怎么办?我该怎么做? (我知道那里的安全问题/不良做法)

我应该将 token 保存在某个地方吗?是否有其他服务可用于长期 token ?可能吗?是否涉及cookie?

最佳答案

从概念上讲,使用code flow对应用程序进行身份验证之后,您将收到一个刷新 token ,可以将其与客户端ID一起保存,并稍后使用它来按here所述检索访问 token 。
对于Windows和Windows Phone,您还可以使用Authentication Adapter for the OneDrive SDK完成所有工作:

MsaAuthenticationProvider msaAuthProvider = new MsaAuthenticationProvider(
                            MsaClientId,
                            MsaClientSecret,
                            RedirectUri,
                            Scopes,
                            null,
                            new CredentialVault(MsaClientId));

        await msaAuthProvider.RestoreMostRecentFromCacheOrAuthenticateUserAsync(userName);
        OneDriveClient oneDriveClient = new OneDriveClient("https://api.onedrive.com/v1.0", msaAuthProvider);

关于c# - 通过Onedrive SDK/API(或任何API)保持身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35772215/

10-10 14:50