JWT令牌工作,但在我访问该页面的第二天失败

时间:2018-04-11 17:40:05

标签: jwt express-jwt

我是JWT的新手。使用" jsonwebtoken":" ^ 8.2.0",

在我的Web应用程序中,我成功使用JWT进行身份验证。 我可以登录,在本地存储中创建有效的令牌。使用它从服务器收集数据没有问题。

但是第二天访问该页面时出错。

在我的代码中,我将其设置为expiredIn:' 30d'。所以,每次访问网站时我都不需要继续登录。一切正常,令牌作品。 本地存储包含json格式的数据。

public interface INetworkService {
  Task<List<MyObject>> GetThingsAsync(string api);
}

public class HttpNetworkService : INetworkService {
  private readonly HttpClient Client;
  public HttpNetworkService(HttpClient client) {
    Client = client;
  }

  public Task<List<MyObject>> GetThingsAsync(string api) {
    var json = await Client.GetStringAsync(api);
    return JsonConvert.DeserializeObject<List<MyObject>>(json);
  }
}

public class TestNetworkService : INetworkService {
  public Task<List<MyObject>> GetThingsAsync(string api) {
    return Task.FromResult(new List<MyObject> { /*build out your mock result here*/ });
  }
}

public class MyController : Controller {
  private readonly INetworkService NetworkService;
  public MyController(INetworkService svc) {
    NetworkService = svc;
  }

  public async Task<ActionResult> Index() {
    ViewBag.Title = "Home Page";
    var tasks = await NetworkService.GetThingsAsync(ConfigurationManager.AppSettings["MyCustomAPI"]);
    return View(tasks);
  }
}

第二天,我回来了。该网站不要求我登录,但它在控制台上出错,出现错误,用户名未定义。我必须退出并重新登录。然后我得到一个新的令牌工作。但它第二天再次崩溃。

我错过了哪一步?

{
    token: long token string,
    user: { username: user }
}

JWT.io debugger

它显示4/11的令牌在5/11到期

0 个答案:

没有答案