Fix token expiry check. Add missing returns to Parse()

Token expiry checks were being done but errors not being returned immediately. `err` was then being overwritten further on causing an expired token to not be flagged as such