Xamarin.forms 对如何在我的应用程序上正确使用IdentityServer感到非常困惑

Xamarin.forms 对如何在我的应用程序上正确使用IdentityServer感到非常困惑,xamarin.forms,identityserver4,xamarin.auth,Xamarin.forms,Identityserver4,Xamarin.auth,我可能无法正确理解如何使用Xamarin.Auth正确实现IdentityServer4 基本上,我使用Xamarin.Auth处理多个案例 登录OAuth2供应商(MS/Google/FB) 使用自实现的OAuth2登录(尚未使用) 说到案例1,在将移动应用程序的登录提交到Google/MS/FB后,我决定进一步做什么:转到应用程序的主页或注册用户,将电子邮件注册为用户名,将用户名(来自供应商的用户名)注册为密码 我已经用AsNetIdentity实现了IdentityServer4 据我所知

我可能无法正确理解如何使用Xamarin.Auth正确实现IdentityServer4

基本上,我使用Xamarin.Auth处理多个案例

  • 登录OAuth2供应商(MS/Google/FB)
  • 使用自实现的OAuth2登录(尚未使用)
  • 说到案例1,在将移动应用程序的登录提交到Google/MS/FB后,我决定进一步做什么:转到应用程序的主页或注册用户,将电子邮件注册为用户名,将用户名(来自供应商的用户名)注册为密码

    我已经用AsNetIdentity实现了IdentityServer4

    据我所知,我需要实现混合身份验证,但这里的问题是,它的特点是需要使用WebView,在案例1中不再需要它。 所以基本上我认为我需要使用授权流,但尝试执行其中任何一项都失败了

    https://localhost:44348/connect/authorize?
        client_id=XamClient&
        client_secret=secret&response_type=code+id_token&
        scope=openid&
        redirect_uri=https%3A%2F%2Flocalhost%3A44348%2Fxamarincallback&
        nonce=7a8ff1c107e345a8b055a8232ec15545&
        code_challenge=8Kk9RQ8NX6w3YzL0eU7AWQurWnikb9NS9bVwa5lxhhE&
        code_challenge_method=S256&state=d3a7b6a511da413395b2552fb194af2f
    
    我这里的问题是,大多数示例都有一个MVC视图,该视图将此url作为重定向url获取,然后在客户端使用其用户名和密码提交帖子后,我将获取
    授权代码
    刷新令牌
    标识

    我真的不确定如何正确地提交身份验证在我的情况下,使用什么

    我只能用 -含蓄的 -授权码-这是我的第一个场景中唯一合理的选项? -混合模式-尝试了一整天来实现这一点,意识到这是不可能的

    无论如何,在查看日志后,我看到突然可疑地重定向到帐户控制器(asp登录控制器)

    通过分析来自Git的
    标识服务器4
    ,此/authorize端点只接受GET,不接受用户/pw

    编辑01: 我已经检查了这个资源,它把我和我的场景(1)混淆了

     {
            "name": "Microsoft.ApplicationInsights.Dev.Request",
            "time": "2017-09-12T11:26:56.5388249Z",
            "tags": {
                "ai.location.ip": "127.0.0.1",
                "ai.internal.nodeName": "EDWARD",
                "ai.operation.id": "152eb716-4ff8951dec6a1ed1",
                "ai.internal.sdkVersion": "aspnet5c:2.1.1",
                "ai.application.ver": "1.0.0.0",
                "ai.operation.name": "GET /connect/authorize",
                "ai.cloud.roleInstance": "EDWARD"
            },
            "data": {
                "baseType": "RequestData",
                "baseData": {
                    "ver": 2,
                    "id": "|152eb716-4ff8951dec6a1ed1.",
                    "name": "GET /connect/authorize",
                    "duration": "00:00:00.1530713",
                    "success": true,
                    "responseCode": "302",
                    "url": "https://localhost:44348/connect/authorize?client_id=AnonymousCheckerClient&client_secret=secret&response_type=code+id_token&scope=openid&redirect_uri=https:%2F%2Flocalhost:44348%2Fxamarincallback&nonce=af1427d39dc2463697047a834169fdcf&code_challenge=UUi0a9cfhrcGvzddV9eh0Lc8cdr5WE-ZwSzwbY7ReNQ&code_challenge_method=S256&state=aafde38b65044c35b83a1fcb8771de2e",
                    "properties": {
                        "httpMethod": "GET",
                        "AspNetCoreEnvironment": "Development",
                        "DeveloperMode": "true"
                    }
                }
            }
        },
        {
            "name": "Microsoft.ApplicationInsights.Dev.Message",
            "time": "2017-09-12T11:26:56.6993438Z",
            "tags": {
                "ai.location.ip": "127.0.0.1",
                "ai.operation.parentId": "|152eb717-4ff8951dec6a1ed1.",
                "ai.internal.nodeName": "EDWARD",
                "ai.operation.id": "152eb717-4ff8951dec6a1ed1",
                "ai.internal.sdkVersion": "aspnet5c:2.1.1",
                "ai.application.ver": "1.0.0.0",
                "ai.operation.name": "GET /account/login",
                "ai.cloud.roleInstance": "EDWARD"
            },
            "data": {
                "baseType": "MessageData",
                "baseData": {
                    "ver": 2,
                    "message": "Request starting HTTP/1.1 GET http://localhost:44348/account/login?returnUrl=%2Fconnect%2Fauthorize%2Fcallback%3Fclient_id%3DAnonymousCheckerClient%26client_secret%3Dsecret%26response_type%3Dcode%2520id_token%26scope%3Dopenid%26redirect_uri%3Dhttps%253A%252F%252Flocalhost%253A44348%252Fxamarincallback%26nonce%3Daf1427d39dc2463697047a834169fdcf%26code_challenge%3DUUi0a9cfhrcGvzddV9eh0Lc8cdr5WE-ZwSzwbY7ReNQ%26code_challenge_method%3DS256%26state%3Daafde38b65044c35b83a1fcb8771de2e",
                    "severityLevel": "Information",
                    "properties": {
                        "AspNetCoreEnvironment": "Development",
                        "Protocol": "HTTP/1.1",
                        "Host": "localhost:44348",
                        "QueryString": "?returnUrl=%2Fconnect%2Fauthorize%2Fcallback%3Fclient_id%3DAnonymousCheckerClient%26client_secret%3Dsecret%26response_type%3Dcode%2520id_token%26scope%3Dopenid%26redirect_uri%3Dhttps%253A%252F%252Flocalhost%253A44348%252Fxamarincallback%26nonce%3Daf1427d39dc2463697047a834169fdcf%26code_challenge%3DUUi0a9cfhrcGvzddV9eh0Lc8cdr5WE-ZwSzwbY7ReNQ%26code_challenge_method%3DS256%26state%3Daafde38b65044c35b83a1fcb8771de2e",
                        "Scheme": "http",
                        "Path": "/account/login",
                        "DeveloperMode": "true",
                        "CategoryName": "Microsoft.AspNetCore.Hosting.Internal.WebHost",
                        "Method": "GET"
                    }
                }
            }
        }