JSON Web 令牌服务堆栈 API

JSON Web Token Servicestack API

我已经按照以下方式(以及其他方式)配置了 JSON Web 令牌。

      Plugins.Add(new AuthFeature(() => new AuthUserSession(),
      new IAuthProvider[] {
            new JwtAuthProvider(appSettings) { AuthKeyBase64 = appSettings.GetString("JWT:AuthKeyBase64")},
            new FacebookAuthProvider(appSettings),
            new TwitterAuthProvider(appSettings),
            new CredentialsAuthProvider(appSettings),
      }));

当我尝试使用 reslet/auth 向用户授权时,我得到 401 Unauthorized,即使我知道用户名和密码是正确的。

我还需要在请求中添加其他内容吗?或者我必须做一些其他的改变?如果我启用了 BasicAuth,登录就没有问题。

/auth 路由仅检查您是否通过身份验证,如果您未通过身份验证,它将 return 一个 401 来指示,否则它将 return 一个 200 响应关于您的会话的基本信息。

要进行身份验证,您需要使用 Auth Providers 之一进行身份验证,例如对于 Username/Password,您需要使用以下方式进行身份验证:

/auth/credentials

通过发送 GET /auth/credentials?username=myuser&password=mypassvia a HTTP POST:

POST /auth/credentials    
{
    "UserName": "admin",
    "Password": "test",
    "RememberMe": true
}

Note in the next release of ServiceStack GET Authenticate Requests like /auth/credentials will be disabled by default so it's recommended in your App to Authenticate via HTTP POST.