Ale*_*ler 5 authentication basic-authentication servicestack
如何使用ServiceStack实现以下方案?
初始请求http://localhost/auth具有如下定义的Authorization标头:
Authorization: Basic skdjflsdkfj=
IAuthProvider实现针对用户存储进行验证,并将会话令牌作为响应主体(JSON)返回.
客户端使用此令牌,将其与后续请求重新发送,例如http://localhost/json/reply/orders使用Authorization标头,如下所示:
Authorization: BasicToken <TokenFromPreviousSuccessfulLogin>
使用AuthenticateAttribute我想标记我的服务以使用身份验证.
我应该如何为后续请求实现令牌验证?我该如何实现IAuthProvider提供令牌?我如何注册提供商等?使用RequestFilters还是使用AuthFeature?
ServiceStack的JWT AuthProvider和API Key AuthProvider都使用基于令牌的身份验证.
否则,BasicAuth提供程序是一个非常简单的类,只需从BasicAuth标头中提取UserName和Password并对其进行评估:
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头,如果它存在使用,否则调用该base.Authenticate(...)方法来执行初始验证.
| 归档时间: | 
 | 
| 查看次数: | 3155 次 | 
| 最近记录: |