objective categorical abstract machine language personal data server
65
fork

Configure Feed

Select the types of activity you want to include in your feed.

open Oauth

futurGH ade2c30a 3966a6d3

+18 -22
+11 -15
pegasus/lib/api/oauth_/authorize.ml
··· 1 + open Oauth 1 2 open Oauth.Types 2 3 3 4 let get_session_user (ctx : Xrpc.context) = ··· 17 18 (* TODO: actually implement the page for this redirect *) 18 19 Dream.redirect ctx.req ("/login?return_to=" ^ return_url) 19 20 | Some client_id, Some request_uri -> ( 20 - let prefix = Oauth.Constants.request_uri_prefix in 21 + let prefix = Constants.request_uri_prefix in 21 22 if not (String.starts_with ~prefix request_uri) then 22 23 Dream.redirect ctx.req ("/login?return_to=" ^ return_url) 23 24 else ··· 25 26 String.sub request_uri (String.length prefix) 26 27 (String.length request_uri - String.length prefix) 27 28 in 28 - match%lwt Oauth.Queries.get_par_request ctx.db request_id with 29 + match%lwt Queries.get_par_request ctx.db request_id with 29 30 | None -> 30 31 Dream.redirect ctx.req ("/login?return_to=" ^ return_url) 31 32 | Some req_record -> ( ··· 41 42 |> Result.get_ok 42 43 in 43 44 let%lwt _client = 44 - try%lwt Oauth.Client.fetch_client_metadata client_id 45 + try%lwt Client.fetch_client_metadata client_id 45 46 with _ -> 46 47 Errors.internal_error 47 48 ~msg:"failed to fetch client metadata" () ··· 50 51 "cod-" 51 52 ^ Uuidm.to_string (Uuidm.v4_gen (Random.get_state ()) ()) 52 53 in 53 - let expires_at = 54 - Util.now_ms () + Oauth.Constants.code_expiry_ms 55 - in 54 + let expires_at = Util.now_ms () + Constants.code_expiry_ms in 56 55 let%lwt () = 57 - Oauth.Queries.insert_auth_code ctx.db 56 + Queries.insert_auth_code ctx.db 58 57 { code 59 58 ; request_id 60 59 ; authorized_by= None ··· 111 110 let request_uri = List.assoc_opt "request_uri" fields in 112 111 match (action, code, request_uri) with 113 112 | Some "deny", _, Some request_uri -> ( 114 - let prefix = Oauth.Constants.request_uri_prefix in 113 + let prefix = Constants.request_uri_prefix in 115 114 let request_id = 116 115 String.sub request_uri (String.length prefix) 117 116 (String.length request_uri - String.length prefix) 118 117 in 119 118 let%lwt req_record = 120 - Oauth.Queries.get_par_request ctx.db request_id 119 + Queries.get_par_request ctx.db request_id 121 120 in 122 121 match req_record with 123 122 | Some rec_ -> ··· 141 140 | None -> 142 141 Errors.invalid_request "request expired" ) 143 142 | Some "allow", Some code, Some _request_uri -> ( 144 - let%lwt code_record = 145 - Oauth.Queries.get_auth_code ctx.db code 146 - in 143 + let%lwt code_record = Queries.get_auth_code ctx.db code in 147 144 match code_record with 148 145 | None -> 149 146 Errors.invalid_request "invalid code" ··· 156 153 Errors.invalid_request "code expired" 157 154 else 158 155 let%lwt () = 159 - Oauth.Queries.activate_auth_code ctx.db code user_did 156 + Queries.activate_auth_code ctx.db code user_did 160 157 in 161 158 let%lwt req_record = 162 - Oauth.Queries.get_par_request ctx.db 163 - code_rec.request_id 159 + Queries.get_par_request ctx.db code_rec.request_id 164 160 in 165 161 match req_record with 166 162 | None ->
+7 -7
pegasus/lib/api/oauth_/par.ml
··· 1 + open Oauth 2 + 1 3 type request = 2 4 { client_id: string 3 5 ; response_type: string ··· 12 14 let handler = 13 15 Xrpc.handler (fun ctx -> 14 16 let proof = 15 - Oauth.Dpop.verify_dpop_proof 17 + Dpop.verify_dpop_proof 16 18 ~mthd:(Dream.method_to_string @@ Dream.method_ ctx.req) 17 19 ~url:(Dream.target ctx.req) 18 20 ~dpop_header:(Dream.header ctx.req "DPoP") ··· 28 30 | Ok proof -> 29 31 let%lwt req = Xrpc.parse_body ctx.req request_of_yojson in 30 32 let%lwt client = 31 - try%lwt Oauth.Client.fetch_client_metadata req.client_id 33 + try%lwt Client.fetch_client_metadata req.client_id 32 34 with e -> 33 35 Errors.log_exn ~req:ctx.req e ; 34 36 Errors.invalid_request "failed to fetch client metadata" ··· 43 45 let request_id = 44 46 "req-" ^ Uuidm.to_string (Uuidm.v4_gen (Random.get_state ()) ()) 45 47 in 46 - let request_uri = Oauth.Constants.request_uri_prefix ^ request_id in 47 - let expires_at = 48 - Util.now_ms () + Oauth.Constants.par_request_ttl_ms 49 - in 48 + let request_uri = Constants.request_uri_prefix ^ request_id in 49 + let expires_at = Util.now_ms () + Constants.par_request_ttl_ms in 50 50 let%lwt () = 51 - Oauth.Queries.insert_par_request ctx.db 51 + Queries.insert_par_request ctx.db 52 52 { request_id 53 53 ; client_id= req.client_id 54 54 ; request_data= Yojson.Safe.to_string (request_to_yojson req)