需要使用 OWIN oAuth2 为 C# ASP.NET Web API 实现自定义授权服务器隐式授权流

问题描述

我有一个客户端(移动应用程序)想要使用我们的资源,所以我必须创建我们自己的授权服务器,我已经使用 OWIN 完成了它,但正如我在标题中强调的那样,我必须实现“隐式授权流程”。 这是编码部分。

PublicClientId = "megaapp";
            OAuthOptions = new OAuthAuthorizationServerOptions
            {
                TokenEndpointPath = new PathString("/oauth/token"),Provider = new AppOAuthProvider(PublicClientId),AuthorizeEndpointPath = new PathString("/oauth/authorize"),AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(4),AllowInsecureHttp = true //Don't do this in production ONLY FOR DEVELOPING: ALLOW INSECURE HTTP!
                //,AccessTokenFormat = new CustomJwtFormat(""),AuthorizationCodeProvider = new AuthenticationTokenProvider
               {
                   //OnCreate = CreateAuthenticationCode,//OnReceive = ReceiveAuthenticationCode,}
            };

因此,如果我要使用以下 API 链接通过 Post 进行调用,以便我能够获取访问令牌

oAuth2 TokenEndPointPath 邮递员调用:

1

但是问题从 AuthorizeEndpointPath 开始,我必须使用 AuthorizeEndpointPath 进行调用,但我使用邮递员尝试了它,但我收到了“Invalid_request”。

Postman API 调用中的 AuthorizeEndPointPath 错误:

2

现在我的要求是我需要什么作为预期的结果。 应该是Get Call from Mobile App,我们必须在其中传递以下参数。

查询参数

client_id: (string,required) - 客户端 ID

redirect_uri: (string,required) - 重定向 URL

state: (string,required) - 抗 CSRF 攻击

country: (string,required) - 国家信息

language: (string,required) - 语言信息

这应该是上面API的响应

标题

Location: <redierct_uri>

参数

以下响应参数将添加到 <redirect_uri> 作为 Location 标头中的查询参数

token: (string) - 令牌字符串

token_type (string) - 令牌类型(Bearer)

expires_in (number) - 令牌有效期限(秒)

state (string) - 抗 CSRF 攻击

我是 OAuth 和自定义授权服务器的新手,所以请告诉我,如果我做错了什么,请指导我并让我知道我可以在哪里存储 ClientiD 和 clientsecret。

提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...