Github 的 ServiceStack OAuth 问题

ServiceStack OAuth Issue with Github

我正在使用 dotnet core 3.1,最新版本的 ServiceStack,我正在尝试使用 Google、Microsoft 和 Github OAuth。

到目前为止,对于 Google 和 Microsoft,我没有遇到任何问题,但是,当我导航至 Github 并单击 'Github' 时,对于 Github按钮。

我被重定向到 GitHub 并显示同意页面。

Personal user data
Full access

当我点击 Authorize 时,我被重定向回我的本地主机:/login#f=AccessTokenFailed

如果我登录我的开发者设置,我会看到 1 个用户。

所以,我不确定这是 ServiceStack 中的工作流问题,还是我的实现中的问题。

根据我的实施,我有这个:

appsettings.json

"oauth.github.Scopes": "user,user:email",
"oauth.github.ClientId" :"xxx",
"oauth.github.ClientSecret": "xxx",

...

Plugins.Add(new AuthFeature(
            () => new AuthUserSession(),
            new IAuthProvider[] {
                new JwtAuthProvider
                {
                    HashAlgorithm = "HS256",
                    RequireSecureConnection = false, 
                    AuthKeyBase64 = "xxx", 
                    CreatePayloadFilter = (payload,session) => {},
                    PopulateSessionFilter = (session, token, req) => {}
                },
                new GoogleAuthProvider(appSettings),
                new GithubAuthProvider(appSettings),
                new MicrosoftGraphAuthProvider(appSettings)                }
        ));

初始重定向回我的应用程序后,当我再次导航到 /auth 时,我发现我没有登录,但是当我再次点击 Github 按钮时,我又被重定向回来了URL (AccessTokenFailed) 中的相同错误消息(没有同意提示或任何内容)。

知道这里有什么问题吗?

此问题是由于新 GitHub OAuth Apps requiring access tokens to be submitted via Authorization Header which has now been resolved from this commit

此更改现在可从最新的 v5.9.3+ 开始使用,即 available on MyGet