【问题标题】:JSON Web Token Servicestack APIJSON Web 令牌服务堆栈 API
【发布时间】:2019-07-31 04:26:44
【问题描述】:

我已通过以下方式(以及其他方式)配置了 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,则登录没有问题。

【问题讨论】:

    标签: servicestack


    【解决方案1】:

    空的/auth 路由仅检查您是否已通过身份验证,如果您未通过身份验证,它将返回 401 指示,否则将返回 200 响应,其中包含有关您的会话的基本信息。

    要进行身份验证,您需要使用Auth Providers 之一进行身份验证,例如对于用户名/密码,您需要进行身份验证:

    /auth/credentials
    

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

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

    注意在 ServiceStack 的下一版本中 GET Authenticate Requests like /auth/credentials 默认将被禁用,因此建议在您的应用中通过 HTTP POST 进行身份验证。

    【讨论】:

      猜你喜欢
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 2015-09-19
      相关资源
      最近更新 更多