c# - 桌面应用程序的刷新令牌,没有登录提示,使用 oAuth 使用 Web Api 2.0
问题描述
我有一个 web api 2.0 和一个 winform 应用程序。我正在保护我的 web api。到目前为止,我已经实现的是我在 winform 应用程序配置文件中保存了一个用户代码和一个加密密码。使用这些作为用户名和密码,我可以检索令牌以与 API 进行通信。现在我正在尝试实现一个 Refresh Token 并且遇到了一些问题:
对于没有登录提示的桌面应用程序来说,刷新令牌是正确的想法吗?
- 如果是,是否需要使用Client Credentials(id 和 secret)来完成?
- 如果是,如何在客户端创建和存储客户端 ID 和密码?
- 如果没有,是否有教程或示例如何在没有客户端 ID 和密码的情况下实现刷新令牌?
- 如果不是,我应该让令牌长寿吗?
解决方案
使用 oauth2,在客户端成功认证后,认证服务器会发出access_token
, refresh_token
, 和token_expiration
. access_token
用于授权请求,而用于refresh_token
请求新的access_token
并且refresh_token
不需要客户端再次进行身份验证。
在大多数情况下,这些令牌在 JSON 响应中返回。要将您的身份验证请求发布到您的身份验证服务器,这将取决于您的实现。通过令牌持久性,您可以决定是否要将令牌保存到磁盘或应用程序内存中。令牌过期后,您可以让您的应用程序请求一组新令牌。
推荐阅读
- python - PyQt:如何创建自定义组合标题栏和菜单栏
- python - 获取计数和报告人员详细信息
- c++ - 未定义的标识符 - 缺少哪些头文件?- DX12
- scala - scala根据时间列将单行拆分为多行
- javascript - 不在 Firefox 中重用获取的资源
- c# - 为什么会出现此异常:发生了一个或多个错误。在 System.Threading.Tasks.Task.ThrowIfExceptional
- python - Python googlesearch 库 __init__() 缺少 1 个必需的位置参数:“搜索”
- java - EditText 的 setCustomSelectionActionModeCallback 方法在 MIUI 中不起作用
- c# - C#如何使用oledb调用as 400存储过程
- sql-server - 我已经安装了“install-dbatools”powershell脚本,但是没有copy-sqllogin或者export-sqllogin功能