1. 11 Jan, 2017 4 commits
    • Eric Chiang's avatar
      server: update refresh tokens instead of deleting and creating another · f778b2d3
      Eric Chiang authored
      The server implements a strategy called "Refresh Token Rotation" to
      ensure refresh tokens can only be claimed once.
      
      ref: https://tools.ietf.org/html/rfc6819#section-5.2.2.3
      
      Previously "refresh_token" values in token responses where just the
      ID of the internal refresh object. To implement rotation, when a
      client redeemed a refresh token, the object would be deleted, a new
      one created, and the new ID returned as the new "refresh_token".
      
      However, this means there was no consistent ID for refresh tokens
      internally, making things like foreign keys very hard to implement.
      This is problematic for revocation features like showing all the
      refresh tokens a user or client has out.
      
      This PR updates the "refresh_token" to be an encoded protobuf
      message, which holds the internal ID and a nonce. When a refresh
      token is used, the nonce is updated to prevent reuse, but the ID
      remains the same. Additionally it adds the timestamp of each
      token's last use.
      f778b2d3
    • Eric Chiang's avatar
    • Eric Chiang's avatar
      Merge pull request #766 from ericchiang/implicit-flow · c66cce8b
      Eric Chiang authored
      server: fixes for the implicit and hybrid flow
      c66cce8b
    • Eric Chiang's avatar
      server: fixes for the implicit and hybrid flow · f926d741
      Eric Chiang authored
      Accept the following response_type for the implicit flow:
      
          id_token
          token id_token
      
      And the following for hybrid flow
      
          code id_token
          code token
          code token id_token
      
      This corrects the previous behavior of the implicit flow, which
      only accepted "token" (now correctly rejected).
      f926d741
  2. 10 Jan, 2017 5 commits
  3. 09 Jan, 2017 2 commits
  4. 08 Jan, 2017 3 commits
  5. 07 Jan, 2017 1 commit
  6. 06 Jan, 2017 2 commits
  7. 28 Dec, 2016 1 commit
  8. 27 Dec, 2016 1 commit
  9. 22 Dec, 2016 5 commits
  10. 20 Dec, 2016 2 commits
  11. 17 Dec, 2016 2 commits
  12. 16 Dec, 2016 4 commits
    • Eric Chiang's avatar
      Merge pull request #749 from ericchiang/postgres-timezones · c58dd948
      Eric Chiang authored
      storage: fix postgres timezone handling
      c58dd948
    • Eric Chiang's avatar
      Merge pull request #742 from rithujohn191/dex-frontend-cleanup · c7aa1548
      Eric Chiang authored
      server: add error HTML templates with error description.
      c7aa1548
    • Eric Chiang's avatar
      storage: fix postgres timezone handling · fd20b213
      Eric Chiang authored
      Dex's Postgres client currently uses the `timestamp` datatype for
      storing times. This lops of timezones with no conversion, causing
      times to lose locality information.
      
      We could convert all times to UTC before storing them, but this is
      a backward incompatible change for upgrades, since the new version
      of dex would still be reading times from the database with no
      locality.
      
      Because of this intrinsic issue that current Postgres users don't
      save any timezone data, we chose to treat any existing installation
      as corrupted and change the datatype used for times to `timestamptz`.
      This is a breaking change, but it seems hard to offer an
      alternative that's both correct and backward compatible.
      
      Additionally, an internal flag has been added to SQL flavors,
      `supportsTimezones`. This allows us to handle SQLite3, which doesn't
      support timezones, while still storing timezones in other flavors.
      Flavors that don't support timezones are explicitly converted to
      UTC.
      fd20b213
    • rithu john's avatar
      75aa1c67
  13. 15 Dec, 2016 3 commits
  14. 13 Dec, 2016 5 commits