有没有办法在 c# 桌面应用程序中使用 oauth2 登录 Xero api?
Is there a way to signin Xero api using oauth2 in c# desktop application?
有几个使用 oauth2 登录 Xero 的 .Net 示例代码,但它们都与浏览器一起工作(C# 的大部分示例代码用于 ASP.NET MVC)。
我打算用Xero开发一个桌面应用程序Api但是Xero官方教程说移动或桌面应用程序应该使用PKCE流程而不是使用ClientID/Secret方案。
并且在此 PKCE 流程中,用户应与浏览器交互以获取授权码。
我想知道是否有任何无需用户交互的登录方法。
Xero api 登录刚刚迁移到使用 OAuth2.0,它应该至少与浏览器交互一次。
使用 offline_access 范围获得 refresh_token 后,您将使用此令牌获取访问令牌。
不幸的是,他们不支持自定义 url 方案。
希望对您有所帮助。
我也遇到了同样的问题,没有具体的例子。
如前所述,您需要创建一个刷新令牌(这意味着您必须在某个时候打开浏览器),但之后您可以继续刷新令牌以获得新的访问令牌。刷新令牌只能使用一次,因此您必须在每次使用后存储新的刷新令牌。您必须确保一次只允许一个 program/thread 刷新令牌。如果不刷新,刷新令牌将在 60 天后过期。
我创建了一个 worked example on github 来展示如何做到这一点。
自从我制作了这个 Xero 后,我发送了一个 link 到一个新的 desktop based program which replaces their XOAuth console program 来生成刷新令牌。
既然 .Net 5 可用,您可以考虑将 Edge 嵌入到应用程序中,以便在您必须登录 Xero 时使用
有几个使用 oauth2 登录 Xero 的 .Net 示例代码,但它们都与浏览器一起工作(C# 的大部分示例代码用于 ASP.NET MVC)。
我打算用Xero开发一个桌面应用程序Api但是Xero官方教程说移动或桌面应用程序应该使用PKCE流程而不是使用ClientID/Secret方案。
并且在此 PKCE 流程中,用户应与浏览器交互以获取授权码。
我想知道是否有任何无需用户交互的登录方法。
Xero api 登录刚刚迁移到使用 OAuth2.0,它应该至少与浏览器交互一次。 使用 offline_access 范围获得 refresh_token 后,您将使用此令牌获取访问令牌。 不幸的是,他们不支持自定义 url 方案。 希望对您有所帮助。
我也遇到了同样的问题,没有具体的例子。
如前所述,您需要创建一个刷新令牌(这意味着您必须在某个时候打开浏览器),但之后您可以继续刷新令牌以获得新的访问令牌。刷新令牌只能使用一次,因此您必须在每次使用后存储新的刷新令牌。您必须确保一次只允许一个 program/thread 刷新令牌。如果不刷新,刷新令牌将在 60 天后过期。
我创建了一个 worked example on github 来展示如何做到这一点。
自从我制作了这个 Xero 后,我发送了一个 link 到一个新的 desktop based program which replaces their XOAuth console program 来生成刷新令牌。
既然 .Net 5 可用,您可以考虑将 Edge 嵌入到应用程序中,以便在您必须登录 Xero 时使用