Quentin Gliech
b9eda7c9e8
Save the ID token during an upstream authorization
2022-12-05 19:39:51 +01:00
Quentin Gliech
6aca90e4d9
OIDC account linking and login
2022-12-05 19:39:51 +01:00
Quentin Gliech
ae532a05f9
Lookup and save upstream links
2022-12-05 19:39:51 +01:00
Quentin Gliech
28704ab473
WIP: upstream OIDC provider support
2022-12-05 19:39:51 +01:00
Quentin Gliech
625f238eee
More cleanups
2022-11-02 18:59:00 +01:00
Quentin Gliech
2bfd22a7df
Cleanups
2022-11-02 18:59:00 +01:00
Quentin Gliech
9c27110993
Stop using Utc::now in templates samples
2022-11-02 18:59:00 +01:00
Quentin Gliech
fb5d6eac25
Pass the rng and clock around
2022-11-02 18:59:00 +01:00
Quentin Gliech
9ad66ed94d
Database refactoring
2022-11-02 18:59:00 +01:00
Quentin Gliech
57bcedfe58
Make the JWK generic over the parameters
2022-09-02 15:37:46 +02:00
Quentin Gliech
2281ccfcbd
Remove support for the token response type
2022-09-02 13:59:10 +02:00
Kévin Commaille
06ebf8a3ef
Fix new clippy 0.1.63 warnings
2022-08-12 11:05:21 +02:00
Quentin Gliech
c1adcd6690
Enable the clippy::str_to_string lint
2022-08-08 10:06:20 +02:00
Hugh Nimmo-Smith
6a7b12913b
Use unstable prefixes for scope names ( #337 )
2022-08-05 17:58:22 +00:00
Quentin Gliech
4e267f45d8
Move the PKCE validation logic to oauth2-types
2022-08-03 13:57:31 +02:00
Quentin Gliech
9479ad5ff9
Fix PKCE characters verification rules & add tests
2022-08-03 13:57:31 +02:00
Quentin Gliech
ecbba3967b
Update crates/data-model/src/oauth2/authorization_grant.rs
...
Co-authored-by: Hugh Nimmo-Smith <hughns@users.noreply.github.com >
2022-08-03 13:57:31 +02:00
Quentin Gliech
deceea0c62
Make PKCE implementation compliant with RFC7636
...
This checks for the PKCE code_verifier length as well as the characters
used. It also give better errors when the PKCE verifier is invalid.
Fixes #316
2022-08-03 13:57:31 +02:00
Quentin Gliech
722023b7ec
Fix some false-positive clippy lints
...
Those were introduced in clippy 1.62 (under clippy::pedantic) and are in
proc-macro generated code
2022-07-01 16:36:35 +02:00
Quentin Gliech
4459c04f6d
Switch email verification to a code-based flow
2022-06-02 16:18:55 +02:00
Quentin Gliech
eb08e3f1b6
Have a consent screen before continuing the SSO login
2022-05-23 10:42:25 +02:00
Quentin Gliech
9a989edd79
Legacy login via m.login.sso
2022-05-23 10:42:25 +02:00
Quentin Gliech
e7e8212ffc
Handle legacy token expiration & refresh tokens
2022-05-19 10:17:49 +02:00
Quentin Gliech
ac95e35a7a
Better data-model for compat sessions & devices
2022-05-19 10:17:49 +02:00
Quentin Gliech
a4ee085664
Working legacy login endpoint
2022-05-19 10:17:49 +02:00
Quentin Gliech
92d3c00db0
Form error state overhaul
...
This adds a new FormState structure here to hold the state of an errored
from, including retaining field value and better error codes.
It also adds error recovery for the registration form, and properly
loads the post_login_action context in case of errors.
2022-05-12 13:35:58 +02:00
Quentin Gliech
a3f332d475
Rewrite the authorization grant logic
2022-05-06 17:12:39 +02:00
Quentin Gliech
5776206570
Rewrite authorization code grant callback logic
2022-05-04 16:36:59 +02:00
Quentin Gliech
a66888e363
Support signed userinfo responses
2022-04-21 11:49:49 +02:00
Quentin Gliech
f243624f45
Move clients to the database
2022-03-08 19:07:46 +01:00
Quentin Gliech
ccf17d1551
Loads of docs & enabling more clippy lints
2022-02-01 12:02:32 +01:00
Quentin Gliech
abc341e7ab
Database model to save user email verification codes
2022-01-21 17:41:11 +01:00
Quentin Gliech
4384594fc2
Email management UI
...
Also simplify a bunch of query strings
2022-01-18 18:16:56 +01:00
Quentin Gliech
1667b5a67f
Save user emails in database
2022-01-14 18:42:37 +01:00
Quentin Gliech
9170bf2a3d
Use iana generated types in more places
2022-01-12 12:22:54 +01:00
Quentin Gliech
8f723815b9
Split the core crate
2021-12-17 18:04:30 +01:00
Quentin Gliech
5aca3fc24c
Move to Rust edition 2021
...
Also bump MSRV to 1.56 and use the same clippy lints in every crate
2021-12-09 22:54:35 +01:00
Quentin Gliech
bb3d6b8089
Fix post-auth redirects & support max_age
...
This also displays some context on login and reauth page about the next
step
2021-11-16 19:16:52 +01:00
Quentin Gliech
4e9d68e9cb
Split the data-model in different modules
2021-11-02 12:58:13 +01:00
Quentin Gliech
91e8998589
Refactor authorization grant
...
The authorization grant is now properly separated from the OAuth2
session, which helps avoiding a lot of potential database
inconsistencies
2021-10-25 17:27:19 -04:00
Quentin Gliech
7c6a7d1ad5
Refactor DB interactions for OAuth code and tokens
...
This ensures complex types like scopes are properly parsed back from the
database.
2021-10-19 20:08:08 +02:00
Quentin Gliech
e1c12ce473
Move templates to their own crate
2021-10-18 17:40:25 +02:00
Quentin Gliech
6a41b887d4
WIP: Refactor higher-level data-model to its own crate
2021-10-12 19:03:01 +02:00