使用Onedrive SDK/API(或任何API)保持身份验证。

9

我正在尝试使用OneDrive API。

在这里找到代码https://github.com/onedrive/onedrive-sdk-csharp

具体来说是OneDrive Api浏览器。

我没有关于这个特定主题(身份验证)的正式教育。

我想知道,第一次登录后我该如何保持身份验证?也就是说,当您期望每次查询URI以获取令牌时,我该如何存储登录信息?

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

我应该将令牌保存在某个位置吗?是否有其他长期令牌的服务可供使用?是否可能?涉及到cookie吗?


1
一个标准的方法是使用Windows数据保护API(DPAPI),通过.NET中的ProtectedData类:https://msdn.microsoft.com/en-us/library/ms229741.aspx - Simon Mourier
1
请查看此链接 https://github.com/OneDrive/onedrive-sdk-dotnet-msa-auth-adapter#cache-sessions否则,您可以直接使用 Microsoft 帐户服务的 OAuth 端点 https://dev.onedrive.com/auth/msa_oauth.htm#step-3-get-a-new-access-token-or-refresh-token - qjuanp
1个回答

3

在使用代码流程进行应用程序认证后,您将接收到一个刷新令牌,您可以将其与客户端ID一起保存,并稍后使用它来检索访问令牌,如此处所述 对于Windows和Windows Phone,您还可以使用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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接