我正在编写一个 Windows 服务应用程序,该应用程序可以在后台运行几个月而无需用户交互,我希望该应用程序将使用 Microsoft.Graph api 将文件上传到 OneDrive。我知道如何通过代码登录并成功上传文件。
我从简单的控制台应用程序开始,当我登录时,有一些 Windows 窗口询问用户名和密码,之后我填写用户名和密码,我从服务器响应中获取一些 token 。 token 会在大约一个小时后失效。
如何使 token 长时间相关,例如几个月,我的目标是我不想每次都在 Windows 窗口中登录。
最佳答案
您无法控制 token 的生命周期。这是由租户管理员控制的。
对于守护进程/服务,您最可能想要的是“仅应用程序” token 。它使用稍微不同的 OAuth 授权(称为客户端凭据),与您今天使用的授权代码授权不同,它不需要用户登录。您可以在 Get access without a user 下的文档中阅读有关此内容的更多信息。 .
如果您想继续使用“应用程序+用户” token (即授权代码授予),则需要通过请求 offline_access
范围来获取刷新 token 。您需要将此刷新 token 存储在本地计算机上(我强烈建议您 protect it like you would a password )。然后,您可以在需要时将该刷新 token 交换为新的访问 token 。您可以在Use the refresh token to get a new access token下的文档中找到有关刷新 token 的详细信息。 .
关于c# - Microsoft Graph 无需每次或 token 长时间登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56149087/