gpt4 book ai didi

c# - OWIN + OAuth - 如何提供用户 ID 而不是用户名

转载 作者:太空宇宙 更新时间:2023-11-03 21:25:46 24 4
gpt4 key购买 nike

我正在创建我自己的授权提供程序,它扩展自 OAuthAuthorizationServerProvider

public class AsyncAuthorizationProvider : OAuthAuthorizationProvider {
//...
public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) {
string username = context.UserName; //Returns the username sent in the request.
string password = context.Password; //Returns the password sent in the request.
//...
}
}

如您所见,OAuthGrantResourceOwnerCredentialsContext 的上下文已经带有两个用于检索用户名和密码的有用属性。

当用户请求我的 oauth 端点时,此信息由用户发送:

{
"grant_type": "password",
"client_id": "someClientId",
"client_secret": "someClientSecret",
"username": "myUsername",
"password": "myPassword"
}

此 JSON 存储在 OAuth 上下文中,但是如果我想发送我的 userId 而不是我的 username 怎么办?如果我的应用程序允许重复的用户名并且我想使用 id 来唯一标识一个用户名怎么办?

当然,我可以将我的 Id 作为 "username": "myUserId" 发送。但这似乎不对。

username 应该包含一个username。这可能会使消费者感到困惑。

有没有办法发送 userId 从上下文中检索它?

最佳答案

您可以设置任何您想要的参数并获取它如下:

var formCollection = (Microsoft.Owin.FormCollection)context.Parameters;

var userId = formCollection.Get("userId");

关于c# - OWIN + OAuth - 如何提供用户 ID 而不是用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27149666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com