gpt4 book ai didi

authentication - 如何使用 ServiceStack 进行基于 token 的身份验证

转载 作者:行者123 更新时间:2023-12-04 18:09:57 24 4
gpt4 key购买 nike

我将如何使用 ServiceStack 实现以下场景?

初始请求转到 http://localhost/auth具有如下定义的 Authorization header :
Authorization: Basic skdjflsdkfj=
IAuthProvider 实现针对用户存储进行验证并返回 session token 作为响应正文 (JSON)。

客户端使用此 token 并针对后续请求(如 http://localhost/json/reply/orders)重新发送它像这样使用 Authorization header :
Authorization: BasicToken <TokenFromPreviousSuccessfulLogin>
使用 AuthenticateAttribute我想标记我的服务以使用身份验证。

我应该如何为后续请求实现 token 验证?
我应该如何实现 IAuthProvider提供 token ?
我将如何注册提供者等?使用 RequestFilters 或使用 AuthFeature ?

最佳答案

ServiceStack的JWT AuthProviderAPI Key AuthProvider两者都使用基于 token 的身份验证。

否则 BasicAuth Provider是一个非常简单的类,它只是从 BasicAuth header 中提取用户名和密码并对其进行评估:

public override object Authenticate(...)
{
var httpReq = authService.RequestContext.Get<IHttpRequest>();
var basicAuth = httpReq.GetBasicAuthUserAndPassword();
if (basicAuth == null)
throw HttpError.Unauthorized("Invalid BasicAuth credentials");

var userName = basicAuth.Value.Key;
var password = basicAuth.Value.Value;

return Authenticate(authService, session, userName, password, request.Continue);
}

如果您想提供增强的行为,我将简单地继承此类检查 Authorization: BasicToken header ,如果存在,则使用否则调用 base.Authenticate(...)方法来执行初始验证。

关于authentication - 如何使用 ServiceStack 进行基于 token 的身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16673988/

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