diff --git a/internal/client-go/.openapi-generator/FILES b/internal/client-go/.openapi-generator/FILES index 304b5b327fb8..e5608d3b70a9 100644 --- a/internal/client-go/.openapi-generator/FILES +++ b/internal/client-go/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/ContinueWithVerificationUiFlow.md docs/CourierAPI.md docs/CourierMessageStatus.md docs/CourierMessageType.md +docs/CreateFedcmFlowResponse.md docs/CreateIdentityBody.md docs/CreateRecoveryCodeForIdentityBody.md docs/CreateRecoveryLinkForIdentityBody.md @@ -35,7 +36,6 @@ docs/ErrorGeneric.md docs/FlowError.md docs/FrontendAPI.md docs/GenericError.md -docs/GetFedCmParametersResponse.md docs/GetVersion200Response.md docs/HealthNotReadyStatus.md docs/HealthStatus.md @@ -85,7 +85,6 @@ docs/SessionAuthenticationMethod.md docs/SessionDevice.md docs/SettingsFlow.md docs/SettingsFlowState.md -docs/SubmitFedcmTokenBody.md docs/SuccessfulCodeExchangeResponse.md docs/SuccessfulNativeLogin.md docs/SuccessfulNativeRegistration.md @@ -101,6 +100,7 @@ docs/UiNodeMeta.md docs/UiNodeScriptAttributes.md docs/UiNodeTextAttributes.md docs/UiText.md +docs/UpdateFedcmFlowBody.md docs/UpdateIdentityBody.md docs/UpdateLoginFlowBody.md docs/UpdateLoginFlowWithCodeMethod.md @@ -153,6 +153,7 @@ model_continue_with_verification_ui.go model_continue_with_verification_ui_flow.go model_courier_message_status.go model_courier_message_type.go +model_create_fedcm_flow_response.go model_create_identity_body.go model_create_recovery_code_for_identity_body.go model_create_recovery_link_for_identity_body.go @@ -163,7 +164,6 @@ model_error_flow_replaced.go model_error_generic.go model_flow_error.go model_generic_error.go -model_get_fed_cm_parameters_response.go model_get_version_200_response.go model_health_not_ready_status.go model_health_status.go @@ -211,7 +211,6 @@ model_session_authentication_method.go model_session_device.go model_settings_flow.go model_settings_flow_state.go -model_submit_fedcm_token_body.go model_successful_code_exchange_response.go model_successful_native_login.go model_successful_native_registration.go @@ -227,6 +226,7 @@ model_ui_node_meta.go model_ui_node_script_attributes.go model_ui_node_text_attributes.go model_ui_text.go +model_update_fedcm_flow_body.go model_update_identity_body.go model_update_login_flow_body.go model_update_login_flow_with_code_method.go diff --git a/internal/client-go/README.md b/internal/client-go/README.md index e9657b0432f8..b418e308083f 100644 --- a/internal/client-go/README.md +++ b/internal/client-go/README.md @@ -87,6 +87,7 @@ Class | Method | HTTP request | Description *FrontendAPI* | [**CreateBrowserRegistrationFlow**](docs/FrontendAPI.md#createbrowserregistrationflow) | **Get** /self-service/registration/browser | Create Registration Flow for Browsers *FrontendAPI* | [**CreateBrowserSettingsFlow**](docs/FrontendAPI.md#createbrowsersettingsflow) | **Get** /self-service/settings/browser | Create Settings Flow for Browsers *FrontendAPI* | [**CreateBrowserVerificationFlow**](docs/FrontendAPI.md#createbrowserverificationflow) | **Get** /self-service/verification/browser | Create Verification Flow for Browser Clients +*FrontendAPI* | [**CreateFedcmFlow**](docs/FrontendAPI.md#createfedcmflow) | **Get** /self-service/fed-cm/parameters | Get FedCM Parameters *FrontendAPI* | [**CreateNativeLoginFlow**](docs/FrontendAPI.md#createnativeloginflow) | **Get** /self-service/login/api | Create Login Flow for Native Apps *FrontendAPI* | [**CreateNativeRecoveryFlow**](docs/FrontendAPI.md#createnativerecoveryflow) | **Get** /self-service/recovery/api | Create Recovery Flow for Native Apps *FrontendAPI* | [**CreateNativeRegistrationFlow**](docs/FrontendAPI.md#createnativeregistrationflow) | **Get** /self-service/registration/api | Create Registration Flow for Native Apps @@ -95,7 +96,6 @@ Class | Method | HTTP request | Description *FrontendAPI* | [**DisableMyOtherSessions**](docs/FrontendAPI.md#disablemyothersessions) | **Delete** /sessions | Disable my other sessions *FrontendAPI* | [**DisableMySession**](docs/FrontendAPI.md#disablemysession) | **Delete** /sessions/{id} | Disable one of my sessions *FrontendAPI* | [**ExchangeSessionToken**](docs/FrontendAPI.md#exchangesessiontoken) | **Get** /sessions/token-exchange | Exchange Session Token -*FrontendAPI* | [**GetFedcmParameters**](docs/FrontendAPI.md#getfedcmparameters) | **Get** /self-service/fed-cm/parameters | Get FedCM Parameters *FrontendAPI* | [**GetFlowError**](docs/FrontendAPI.md#getflowerror) | **Get** /self-service/errors | Get User-Flow Errors *FrontendAPI* | [**GetLoginFlow**](docs/FrontendAPI.md#getloginflow) | **Get** /self-service/login/flows | Get Login Flow *FrontendAPI* | [**GetRecoveryFlow**](docs/FrontendAPI.md#getrecoveryflow) | **Get** /self-service/recovery/flows | Get Recovery Flow @@ -105,8 +105,8 @@ Class | Method | HTTP request | Description *FrontendAPI* | [**GetWebAuthnJavaScript**](docs/FrontendAPI.md#getwebauthnjavascript) | **Get** /.well-known/ory/webauthn.js | Get WebAuthn JavaScript *FrontendAPI* | [**ListMySessions**](docs/FrontendAPI.md#listmysessions) | **Get** /sessions | Get My Active Sessions *FrontendAPI* | [**PerformNativeLogout**](docs/FrontendAPI.md#performnativelogout) | **Delete** /self-service/logout/api | Perform Logout for Native Apps -*FrontendAPI* | [**SubmitFedcmToken**](docs/FrontendAPI.md#submitfedcmtoken) | **Post** /self-service/fed-cm/token | Submit a FedCM token *FrontendAPI* | [**ToSession**](docs/FrontendAPI.md#tosession) | **Get** /sessions/whoami | Check Who the Current HTTP Session Belongs To +*FrontendAPI* | [**UpdateFedcmFlow**](docs/FrontendAPI.md#updatefedcmflow) | **Post** /self-service/fed-cm/token | Submit a FedCM token *FrontendAPI* | [**UpdateLoginFlow**](docs/FrontendAPI.md#updateloginflow) | **Post** /self-service/login | Submit a Login Flow *FrontendAPI* | [**UpdateLogoutFlow**](docs/FrontendAPI.md#updatelogoutflow) | **Get** /self-service/logout | Update Logout Flow *FrontendAPI* | [**UpdateRecoveryFlow**](docs/FrontendAPI.md#updaterecoveryflow) | **Post** /self-service/recovery | Update Recovery Flow @@ -152,6 +152,7 @@ Class | Method | HTTP request | Description - [ContinueWithVerificationUiFlow](docs/ContinueWithVerificationUiFlow.md) - [CourierMessageStatus](docs/CourierMessageStatus.md) - [CourierMessageType](docs/CourierMessageType.md) + - [CreateFedcmFlowResponse](docs/CreateFedcmFlowResponse.md) - [CreateIdentityBody](docs/CreateIdentityBody.md) - [CreateRecoveryCodeForIdentityBody](docs/CreateRecoveryCodeForIdentityBody.md) - [CreateRecoveryLinkForIdentityBody](docs/CreateRecoveryLinkForIdentityBody.md) @@ -162,7 +163,6 @@ Class | Method | HTTP request | Description - [ErrorGeneric](docs/ErrorGeneric.md) - [FlowError](docs/FlowError.md) - [GenericError](docs/GenericError.md) - - [GetFedCmParametersResponse](docs/GetFedCmParametersResponse.md) - [GetVersion200Response](docs/GetVersion200Response.md) - [HealthNotReadyStatus](docs/HealthNotReadyStatus.md) - [HealthStatus](docs/HealthStatus.md) @@ -210,7 +210,6 @@ Class | Method | HTTP request | Description - [SessionDevice](docs/SessionDevice.md) - [SettingsFlow](docs/SettingsFlow.md) - [SettingsFlowState](docs/SettingsFlowState.md) - - [SubmitFedcmTokenBody](docs/SubmitFedcmTokenBody.md) - [SuccessfulCodeExchangeResponse](docs/SuccessfulCodeExchangeResponse.md) - [SuccessfulNativeLogin](docs/SuccessfulNativeLogin.md) - [SuccessfulNativeRegistration](docs/SuccessfulNativeRegistration.md) @@ -226,6 +225,7 @@ Class | Method | HTTP request | Description - [UiNodeScriptAttributes](docs/UiNodeScriptAttributes.md) - [UiNodeTextAttributes](docs/UiNodeTextAttributes.md) - [UiText](docs/UiText.md) + - [UpdateFedcmFlowBody](docs/UpdateFedcmFlowBody.md) - [UpdateIdentityBody](docs/UpdateIdentityBody.md) - [UpdateLoginFlowBody](docs/UpdateLoginFlowBody.md) - [UpdateLoginFlowWithCodeMethod](docs/UpdateLoginFlowWithCodeMethod.md) diff --git a/internal/client-go/api_frontend.go b/internal/client-go/api_frontend.go index 97f0ca8b82c7..cd243b065b4b 100644 --- a/internal/client-go/api_frontend.go +++ b/internal/client-go/api_frontend.go @@ -201,6 +201,20 @@ type FrontendAPI interface { */ CreateBrowserVerificationFlowExecute(r FrontendAPIApiCreateBrowserVerificationFlowRequest) (*VerificationFlow, *http.Response, error) + /* + * CreateFedcmFlow Get FedCM Parameters + * This endpoint returns a list of all available FedCM providers. It is only supported on the Ory Network. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @return FrontendAPIApiCreateFedcmFlowRequest + */ + CreateFedcmFlow(ctx context.Context) FrontendAPIApiCreateFedcmFlowRequest + + /* + * CreateFedcmFlowExecute executes the request + * @return CreateFedcmFlowResponse + */ + CreateFedcmFlowExecute(r FrontendAPIApiCreateFedcmFlowRequest) (*CreateFedcmFlowResponse, *http.Response, error) + /* * CreateNativeLoginFlow Create Login Flow for Native Apps * This endpoint initiates a login flow for native apps that do not use a browser, such as mobile devices, smart TVs, and so on. @@ -394,20 +408,6 @@ type FrontendAPI interface { */ ExchangeSessionTokenExecute(r FrontendAPIApiExchangeSessionTokenRequest) (*SuccessfulNativeLogin, *http.Response, error) - /* - * GetFedcmParameters Get FedCM Parameters - * This endpoint returns a list of all available FedCM providers. It is only supported on the Ory Network. - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @return FrontendAPIApiGetFedcmParametersRequest - */ - GetFedcmParameters(ctx context.Context) FrontendAPIApiGetFedcmParametersRequest - - /* - * GetFedcmParametersExecute executes the request - * @return GetFedCmParametersResponse - */ - GetFedcmParametersExecute(r FrontendAPIApiGetFedcmParametersRequest) (*GetFedCmParametersResponse, *http.Response, error) - /* * GetFlowError Get User-Flow Errors * This endpoint returns the error associated with a user-facing self service errors. @@ -651,23 +651,6 @@ type FrontendAPI interface { */ PerformNativeLogoutExecute(r FrontendAPIApiPerformNativeLogoutRequest) (*http.Response, error) - /* - * SubmitFedcmToken Submit a FedCM token - * Use this endpoint to submit a token from a FedCM provider through - `navigator.credentials.get` and log the user in. The parameters from - `navigator.credentials.get` must have come from `GET - self-service/fed-cm/parameters`. - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @return FrontendAPIApiSubmitFedcmTokenRequest - */ - SubmitFedcmToken(ctx context.Context) FrontendAPIApiSubmitFedcmTokenRequest - - /* - * SubmitFedcmTokenExecute executes the request - * @return SuccessfulNativeLogin - */ - SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcmTokenRequest) (*SuccessfulNativeLogin, *http.Response, error) - /* * ToSession Check Who the Current HTTP Session Belongs To * Uses the HTTP Headers in the GET request to determine (e.g. by using checking the cookies) who is authenticated. @@ -740,6 +723,23 @@ type FrontendAPI interface { */ ToSessionExecute(r FrontendAPIApiToSessionRequest) (*Session, *http.Response, error) + /* + * UpdateFedcmFlow Submit a FedCM token + * Use this endpoint to submit a token from a FedCM provider through + `navigator.credentials.get` and log the user in. The parameters from + `navigator.credentials.get` must have come from `GET + self-service/fed-cm/parameters`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @return FrontendAPIApiUpdateFedcmFlowRequest + */ + UpdateFedcmFlow(ctx context.Context) FrontendAPIApiUpdateFedcmFlowRequest + + /* + * UpdateFedcmFlowExecute executes the request + * @return SuccessfulNativeLogin + */ + UpdateFedcmFlowExecute(r FrontendAPIApiUpdateFedcmFlowRequest) (*SuccessfulNativeLogin, *http.Response, error) + /* * UpdateLoginFlow Submit a Login Flow * Use this endpoint to complete a login flow. This endpoint @@ -1921,6 +1921,124 @@ func (a *FrontendAPIService) CreateBrowserVerificationFlowExecute(r FrontendAPIA return localVarReturnValue, localVarHTTPResponse, nil } +type FrontendAPIApiCreateFedcmFlowRequest struct { + ctx context.Context + ApiService FrontendAPI +} + +func (r FrontendAPIApiCreateFedcmFlowRequest) Execute() (*CreateFedcmFlowResponse, *http.Response, error) { + return r.ApiService.CreateFedcmFlowExecute(r) +} + +/* + * CreateFedcmFlow Get FedCM Parameters + * This endpoint returns a list of all available FedCM providers. It is only supported on the Ory Network. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @return FrontendAPIApiCreateFedcmFlowRequest + */ +func (a *FrontendAPIService) CreateFedcmFlow(ctx context.Context) FrontendAPIApiCreateFedcmFlowRequest { + return FrontendAPIApiCreateFedcmFlowRequest{ + ApiService: a, + ctx: ctx, + } +} + +/* + * Execute executes the request + * @return CreateFedcmFlowResponse + */ +func (a *FrontendAPIService) CreateFedcmFlowExecute(r FrontendAPIApiCreateFedcmFlowRequest) (*CreateFedcmFlowResponse, *http.Response, error) { + var ( + localVarHTTPMethod = http.MethodGet + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue *CreateFedcmFlowResponse + ) + + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.CreateFedcmFlow") + if err != nil { + return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} + } + + localVarPath := localBasePath + "/self-service/fed-cm/parameters" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHTTPContentTypes := []string{} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType + } + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(req) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(io.LimitReader(localVarHTTPResponse.Body, 1024*1024)) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v ErrorGeneric + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + var v ErrorGeneric + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: err.Error(), + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + return localVarReturnValue, localVarHTTPResponse, nil +} + type FrontendAPIApiCreateNativeLoginFlowRequest struct { ctx context.Context ApiService FrontendAPI @@ -3135,124 +3253,6 @@ func (a *FrontendAPIService) ExchangeSessionTokenExecute(r FrontendAPIApiExchang return localVarReturnValue, localVarHTTPResponse, nil } -type FrontendAPIApiGetFedcmParametersRequest struct { - ctx context.Context - ApiService FrontendAPI -} - -func (r FrontendAPIApiGetFedcmParametersRequest) Execute() (*GetFedCmParametersResponse, *http.Response, error) { - return r.ApiService.GetFedcmParametersExecute(r) -} - -/* - * GetFedcmParameters Get FedCM Parameters - * This endpoint returns a list of all available FedCM providers. It is only supported on the Ory Network. - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @return FrontendAPIApiGetFedcmParametersRequest - */ -func (a *FrontendAPIService) GetFedcmParameters(ctx context.Context) FrontendAPIApiGetFedcmParametersRequest { - return FrontendAPIApiGetFedcmParametersRequest{ - ApiService: a, - ctx: ctx, - } -} - -/* - * Execute executes the request - * @return GetFedCmParametersResponse - */ -func (a *FrontendAPIService) GetFedcmParametersExecute(r FrontendAPIApiGetFedcmParametersRequest) (*GetFedCmParametersResponse, *http.Response, error) { - var ( - localVarHTTPMethod = http.MethodGet - localVarPostBody interface{} - localVarFormFileName string - localVarFileName string - localVarFileBytes []byte - localVarReturnValue *GetFedCmParametersResponse - ) - - localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.GetFedcmParameters") - if err != nil { - return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} - } - - localVarPath := localBasePath + "/self-service/fed-cm/parameters" - - localVarHeaderParams := make(map[string]string) - localVarQueryParams := url.Values{} - localVarFormParams := url.Values{} - - // to determine the Content-Type header - localVarHTTPContentTypes := []string{} - - // set Content-Type header - localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) - if localVarHTTPContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHTTPContentType - } - - // to determine the Accept header - localVarHTTPHeaderAccepts := []string{"application/json"} - - // set Accept header - localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) - if localVarHTTPHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept - } - req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) - if err != nil { - return localVarReturnValue, nil, err - } - - localVarHTTPResponse, err := a.client.callAPI(req) - if err != nil || localVarHTTPResponse == nil { - return localVarReturnValue, localVarHTTPResponse, err - } - - localVarBody, err := io.ReadAll(io.LimitReader(localVarHTTPResponse.Body, 1024*1024)) - localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) - if err != nil { - return localVarReturnValue, localVarHTTPResponse, err - } - - if localVarHTTPResponse.StatusCode >= 300 { - newErr := &GenericOpenAPIError{ - body: localVarBody, - error: localVarHTTPResponse.Status, - } - if localVarHTTPResponse.StatusCode == 400 { - var v ErrorGeneric - err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHTTPResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHTTPResponse, newErr - } - var v ErrorGeneric - err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHTTPResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHTTPResponse, newErr - } - - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) - if err != nil { - newErr := &GenericOpenAPIError{ - body: localVarBody, - error: err.Error(), - } - return localVarReturnValue, localVarHTTPResponse, newErr - } - - return localVarReturnValue, localVarHTTPResponse, nil -} - type FrontendAPIApiGetFlowErrorRequest struct { ctx context.Context ApiService FrontendAPI @@ -4688,33 +4688,98 @@ func (a *FrontendAPIService) PerformNativeLogoutExecute(r FrontendAPIApiPerformN return localVarHTTPResponse, nil } -type FrontendAPIApiSubmitFedcmTokenRequest struct { - ctx context.Context - ApiService FrontendAPI - submitFedcmTokenBody *SubmitFedcmTokenBody +type FrontendAPIApiToSessionRequest struct { + ctx context.Context + ApiService FrontendAPI + xSessionToken *string + cookie *string + tokenizeAs *string } -func (r FrontendAPIApiSubmitFedcmTokenRequest) SubmitFedcmTokenBody(submitFedcmTokenBody SubmitFedcmTokenBody) FrontendAPIApiSubmitFedcmTokenRequest { - r.submitFedcmTokenBody = &submitFedcmTokenBody +func (r FrontendAPIApiToSessionRequest) XSessionToken(xSessionToken string) FrontendAPIApiToSessionRequest { + r.xSessionToken = &xSessionToken + return r +} +func (r FrontendAPIApiToSessionRequest) Cookie(cookie string) FrontendAPIApiToSessionRequest { + r.cookie = &cookie + return r +} +func (r FrontendAPIApiToSessionRequest) TokenizeAs(tokenizeAs string) FrontendAPIApiToSessionRequest { + r.tokenizeAs = &tokenizeAs return r } -func (r FrontendAPIApiSubmitFedcmTokenRequest) Execute() (*SuccessfulNativeLogin, *http.Response, error) { - return r.ApiService.SubmitFedcmTokenExecute(r) +func (r FrontendAPIApiToSessionRequest) Execute() (*Session, *http.Response, error) { + return r.ApiService.ToSessionExecute(r) } /* - - SubmitFedcmToken Submit a FedCM token - - Use this endpoint to submit a token from a FedCM provider through + - ToSession Check Who the Current HTTP Session Belongs To + - Uses the HTTP Headers in the GET request to determine (e.g. by using checking the cookies) who is authenticated. -`navigator.credentials.get` and log the user in. The parameters from -`navigator.credentials.get` must have come from `GET -self-service/fed-cm/parameters`. +Returns a session object in the body or 401 if the credentials are invalid or no credentials were sent. +When the request it successful it adds the user ID to the 'X-Kratos-Authenticated-Identity-Id' header +in the response. + +If you call this endpoint from a server-side application, you must forward the HTTP Cookie Header to this endpoint: + +```js +pseudo-code example +router.get('/protected-endpoint', async function (req, res) { +const session = await client.toSession(undefined, req.header('cookie')) + +console.log(session) +}) +``` + +When calling this endpoint from a non-browser application (e.g. mobile app) you must include the session token: + +```js +pseudo-code example +... +const session = await client.toSession("the-session-token") + +console.log(session) +``` + +When using a token template, the token is included in the `tokenized` field of the session. + +```js +pseudo-code example +... +const session = await client.toSession("the-session-token", { tokenize_as: "example-jwt-template" }) + +console.log(session.tokenized) // The JWT +``` + +Depending on your configuration this endpoint might return a 403 status code if the session has a lower Authenticator +Assurance Level (AAL) than is possible for the identity. This can happen if the identity has password + webauthn +credentials (which would result in AAL2) but the session has only AAL1. If this error occurs, ask the user +to sign in with the second factor or change the configuration. + +This endpoint is useful for: + +AJAX calls. Remember to send credentials and set up CORS correctly! +Reverse proxies and API Gateways +Server-side calls - use the `X-Session-Token` header! + +This endpoint authenticates users by checking: + +if the `Cookie` HTTP header was set containing an Ory Kratos Session Cookie; +if the `Authorization: bearer ` HTTP header was set with a valid Ory Kratos Session Token; +if the `X-Session-Token` HTTP header was set with a valid Ory Kratos Session Token. + +If none of these headers are set or the cookie or token are invalid, the endpoint returns a HTTP 401 status code. + +As explained above, this request may fail due to several reasons. The `error.id` can be one of: + +`session_inactive`: No active session was found in the request (e.g. no Ory Session Cookie / Ory Session Token). +`session_aal2_required`: An active session was found but it does not fulfil the Authenticator Assurance Level, implying that the session must (e.g.) authenticate the second factor. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - - @return FrontendAPIApiSubmitFedcmTokenRequest + - @return FrontendAPIApiToSessionRequest */ -func (a *FrontendAPIService) SubmitFedcmToken(ctx context.Context) FrontendAPIApiSubmitFedcmTokenRequest { - return FrontendAPIApiSubmitFedcmTokenRequest{ +func (a *FrontendAPIService) ToSession(ctx context.Context) FrontendAPIApiToSessionRequest { + return FrontendAPIApiToSessionRequest{ ApiService: a, ctx: ctx, } @@ -4722,34 +4787,34 @@ func (a *FrontendAPIService) SubmitFedcmToken(ctx context.Context) FrontendAPIAp /* * Execute executes the request - * @return SuccessfulNativeLogin + * @return Session */ -func (a *FrontendAPIService) SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcmTokenRequest) (*SuccessfulNativeLogin, *http.Response, error) { +func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) (*Session, *http.Response, error) { var ( - localVarHTTPMethod = http.MethodPost + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue *SuccessfulNativeLogin + localVarReturnValue *Session ) - localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.SubmitFedcmToken") + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.ToSession") if err != nil { return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} } - localVarPath := localBasePath + "/self-service/fed-cm/token" + localVarPath := localBasePath + "/sessions/whoami" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if r.submitFedcmTokenBody == nil { - return localVarReturnValue, nil, reportError("submitFedcmTokenBody is required and must be specified") - } + if r.tokenizeAs != nil { + localVarQueryParams.Add("tokenize_as", parameterToString(*r.tokenizeAs, "")) + } // to determine the Content-Type header - localVarHTTPContentTypes := []string{"application/json", "application/x-www-form-urlencoded"} + localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) @@ -4765,8 +4830,12 @@ func (a *FrontendAPIService) SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcm if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = r.submitFedcmTokenBody + if r.xSessionToken != nil { + localVarHeaderParams["X-Session-Token"] = parameterToString(*r.xSessionToken, "") + } + if r.cookie != nil { + localVarHeaderParams["Cookie"] = parameterToString(*r.cookie, "") + } req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -4789,17 +4858,7 @@ func (a *FrontendAPIService) SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcm body: localVarBody, error: localVarHTTPResponse.Status, } - if localVarHTTPResponse.StatusCode == 400 { - var v LoginFlow - err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHTTPResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHTTPResponse, newErr - } - if localVarHTTPResponse.StatusCode == 410 { + if localVarHTTPResponse.StatusCode == 401 { var v ErrorGeneric err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { @@ -4809,8 +4868,8 @@ func (a *FrontendAPIService) SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcm newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } - if localVarHTTPResponse.StatusCode == 422 { - var v ErrorBrowserLocationChangeRequired + if localVarHTTPResponse.StatusCode == 403 { + var v ErrorGeneric err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() @@ -4841,98 +4900,33 @@ func (a *FrontendAPIService) SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcm return localVarReturnValue, localVarHTTPResponse, nil } -type FrontendAPIApiToSessionRequest struct { - ctx context.Context - ApiService FrontendAPI - xSessionToken *string - cookie *string - tokenizeAs *string +type FrontendAPIApiUpdateFedcmFlowRequest struct { + ctx context.Context + ApiService FrontendAPI + updateFedcmFlowBody *UpdateFedcmFlowBody } -func (r FrontendAPIApiToSessionRequest) XSessionToken(xSessionToken string) FrontendAPIApiToSessionRequest { - r.xSessionToken = &xSessionToken - return r -} -func (r FrontendAPIApiToSessionRequest) Cookie(cookie string) FrontendAPIApiToSessionRequest { - r.cookie = &cookie - return r -} -func (r FrontendAPIApiToSessionRequest) TokenizeAs(tokenizeAs string) FrontendAPIApiToSessionRequest { - r.tokenizeAs = &tokenizeAs +func (r FrontendAPIApiUpdateFedcmFlowRequest) UpdateFedcmFlowBody(updateFedcmFlowBody UpdateFedcmFlowBody) FrontendAPIApiUpdateFedcmFlowRequest { + r.updateFedcmFlowBody = &updateFedcmFlowBody return r } -func (r FrontendAPIApiToSessionRequest) Execute() (*Session, *http.Response, error) { - return r.ApiService.ToSessionExecute(r) +func (r FrontendAPIApiUpdateFedcmFlowRequest) Execute() (*SuccessfulNativeLogin, *http.Response, error) { + return r.ApiService.UpdateFedcmFlowExecute(r) } /* - - ToSession Check Who the Current HTTP Session Belongs To - - Uses the HTTP Headers in the GET request to determine (e.g. by using checking the cookies) who is authenticated. - -Returns a session object in the body or 401 if the credentials are invalid or no credentials were sent. -When the request it successful it adds the user ID to the 'X-Kratos-Authenticated-Identity-Id' header -in the response. - -If you call this endpoint from a server-side application, you must forward the HTTP Cookie Header to this endpoint: - -```js -pseudo-code example -router.get('/protected-endpoint', async function (req, res) { -const session = await client.toSession(undefined, req.header('cookie')) - -console.log(session) -}) -``` - -When calling this endpoint from a non-browser application (e.g. mobile app) you must include the session token: - -```js -pseudo-code example -... -const session = await client.toSession("the-session-token") - -console.log(session) -``` - -When using a token template, the token is included in the `tokenized` field of the session. - -```js -pseudo-code example -... -const session = await client.toSession("the-session-token", { tokenize_as: "example-jwt-template" }) - -console.log(session.tokenized) // The JWT -``` - -Depending on your configuration this endpoint might return a 403 status code if the session has a lower Authenticator -Assurance Level (AAL) than is possible for the identity. This can happen if the identity has password + webauthn -credentials (which would result in AAL2) but the session has only AAL1. If this error occurs, ask the user -to sign in with the second factor or change the configuration. - -This endpoint is useful for: - -AJAX calls. Remember to send credentials and set up CORS correctly! -Reverse proxies and API Gateways -Server-side calls - use the `X-Session-Token` header! - -This endpoint authenticates users by checking: - -if the `Cookie` HTTP header was set containing an Ory Kratos Session Cookie; -if the `Authorization: bearer ` HTTP header was set with a valid Ory Kratos Session Token; -if the `X-Session-Token` HTTP header was set with a valid Ory Kratos Session Token. - -If none of these headers are set or the cookie or token are invalid, the endpoint returns a HTTP 401 status code. - -As explained above, this request may fail due to several reasons. The `error.id` can be one of: + - UpdateFedcmFlow Submit a FedCM token + - Use this endpoint to submit a token from a FedCM provider through -`session_inactive`: No active session was found in the request (e.g. no Ory Session Cookie / Ory Session Token). -`session_aal2_required`: An active session was found but it does not fulfil the Authenticator Assurance Level, implying that the session must (e.g.) authenticate the second factor. +`navigator.credentials.get` and log the user in. The parameters from +`navigator.credentials.get` must have come from `GET +self-service/fed-cm/parameters`. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - - @return FrontendAPIApiToSessionRequest + - @return FrontendAPIApiUpdateFedcmFlowRequest */ -func (a *FrontendAPIService) ToSession(ctx context.Context) FrontendAPIApiToSessionRequest { - return FrontendAPIApiToSessionRequest{ +func (a *FrontendAPIService) UpdateFedcmFlow(ctx context.Context) FrontendAPIApiUpdateFedcmFlowRequest { + return FrontendAPIApiUpdateFedcmFlowRequest{ ApiService: a, ctx: ctx, } @@ -4940,34 +4934,34 @@ func (a *FrontendAPIService) ToSession(ctx context.Context) FrontendAPIApiToSess /* * Execute executes the request - * @return Session + * @return SuccessfulNativeLogin */ -func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) (*Session, *http.Response, error) { +func (a *FrontendAPIService) UpdateFedcmFlowExecute(r FrontendAPIApiUpdateFedcmFlowRequest) (*SuccessfulNativeLogin, *http.Response, error) { var ( - localVarHTTPMethod = http.MethodGet + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue *Session + localVarReturnValue *SuccessfulNativeLogin ) - localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.ToSession") + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.UpdateFedcmFlow") if err != nil { return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} } - localVarPath := localBasePath + "/sessions/whoami" + localVarPath := localBasePath + "/self-service/fed-cm/token" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - - if r.tokenizeAs != nil { - localVarQueryParams.Add("tokenize_as", parameterToString(*r.tokenizeAs, "")) + if r.updateFedcmFlowBody == nil { + return localVarReturnValue, nil, reportError("updateFedcmFlowBody is required and must be specified") } + // to determine the Content-Type header - localVarHTTPContentTypes := []string{} + localVarHTTPContentTypes := []string{"application/json", "application/x-www-form-urlencoded"} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) @@ -4983,12 +4977,8 @@ func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - if r.xSessionToken != nil { - localVarHeaderParams["X-Session-Token"] = parameterToString(*r.xSessionToken, "") - } - if r.cookie != nil { - localVarHeaderParams["Cookie"] = parameterToString(*r.cookie, "") - } + // body params + localVarPostBody = r.updateFedcmFlowBody req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -5011,8 +5001,8 @@ func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) body: localVarBody, error: localVarHTTPResponse.Status, } - if localVarHTTPResponse.StatusCode == 401 { - var v ErrorGeneric + if localVarHTTPResponse.StatusCode == 400 { + var v LoginFlow err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() @@ -5021,7 +5011,7 @@ func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } - if localVarHTTPResponse.StatusCode == 403 { + if localVarHTTPResponse.StatusCode == 410 { var v ErrorGeneric err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { @@ -5031,6 +5021,16 @@ func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } + if localVarHTTPResponse.StatusCode == 422 { + var v ErrorBrowserLocationChangeRequired + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } var v ErrorGeneric err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { diff --git a/internal/client-go/model_get_fed_cm_parameters_response.go b/internal/client-go/model_create_fedcm_flow_response.go similarity index 59% rename from internal/client-go/model_get_fed_cm_parameters_response.go rename to internal/client-go/model_create_fedcm_flow_response.go index 1563b7e2cee2..fdca32672c63 100644 --- a/internal/client-go/model_get_fed_cm_parameters_response.go +++ b/internal/client-go/model_create_fedcm_flow_response.go @@ -15,31 +15,31 @@ import ( "encoding/json" ) -// GetFedCmParametersResponse Contains a list of all available FedCM providers. -type GetFedCmParametersResponse struct { +// CreateFedcmFlowResponse Contains a list of all available FedCM providers. +type CreateFedcmFlowResponse struct { CsrfToken *string `json:"csrf_token,omitempty"` Providers []Provider `json:"providers,omitempty"` } -// NewGetFedCmParametersResponse instantiates a new GetFedCmParametersResponse object +// NewCreateFedcmFlowResponse instantiates a new CreateFedcmFlowResponse object // This constructor will assign default values to properties that have it defined, // and makes sure properties required by API are set, but the set of arguments // will change when the set of required properties is changed -func NewGetFedCmParametersResponse() *GetFedCmParametersResponse { - this := GetFedCmParametersResponse{} +func NewCreateFedcmFlowResponse() *CreateFedcmFlowResponse { + this := CreateFedcmFlowResponse{} return &this } -// NewGetFedCmParametersResponseWithDefaults instantiates a new GetFedCmParametersResponse object +// NewCreateFedcmFlowResponseWithDefaults instantiates a new CreateFedcmFlowResponse object // This constructor will only assign default values to properties that have it defined, // but it doesn't guarantee that properties required by API are set -func NewGetFedCmParametersResponseWithDefaults() *GetFedCmParametersResponse { - this := GetFedCmParametersResponse{} +func NewCreateFedcmFlowResponseWithDefaults() *CreateFedcmFlowResponse { + this := CreateFedcmFlowResponse{} return &this } // GetCsrfToken returns the CsrfToken field value if set, zero value otherwise. -func (o *GetFedCmParametersResponse) GetCsrfToken() string { +func (o *CreateFedcmFlowResponse) GetCsrfToken() string { if o == nil || o.CsrfToken == nil { var ret string return ret @@ -49,7 +49,7 @@ func (o *GetFedCmParametersResponse) GetCsrfToken() string { // GetCsrfTokenOk returns a tuple with the CsrfToken field value if set, nil otherwise // and a boolean to check if the value has been set. -func (o *GetFedCmParametersResponse) GetCsrfTokenOk() (*string, bool) { +func (o *CreateFedcmFlowResponse) GetCsrfTokenOk() (*string, bool) { if o == nil || o.CsrfToken == nil { return nil, false } @@ -57,7 +57,7 @@ func (o *GetFedCmParametersResponse) GetCsrfTokenOk() (*string, bool) { } // HasCsrfToken returns a boolean if a field has been set. -func (o *GetFedCmParametersResponse) HasCsrfToken() bool { +func (o *CreateFedcmFlowResponse) HasCsrfToken() bool { if o != nil && o.CsrfToken != nil { return true } @@ -66,12 +66,12 @@ func (o *GetFedCmParametersResponse) HasCsrfToken() bool { } // SetCsrfToken gets a reference to the given string and assigns it to the CsrfToken field. -func (o *GetFedCmParametersResponse) SetCsrfToken(v string) { +func (o *CreateFedcmFlowResponse) SetCsrfToken(v string) { o.CsrfToken = &v } // GetProviders returns the Providers field value if set, zero value otherwise. -func (o *GetFedCmParametersResponse) GetProviders() []Provider { +func (o *CreateFedcmFlowResponse) GetProviders() []Provider { if o == nil || o.Providers == nil { var ret []Provider return ret @@ -81,7 +81,7 @@ func (o *GetFedCmParametersResponse) GetProviders() []Provider { // GetProvidersOk returns a tuple with the Providers field value if set, nil otherwise // and a boolean to check if the value has been set. -func (o *GetFedCmParametersResponse) GetProvidersOk() ([]Provider, bool) { +func (o *CreateFedcmFlowResponse) GetProvidersOk() ([]Provider, bool) { if o == nil || o.Providers == nil { return nil, false } @@ -89,7 +89,7 @@ func (o *GetFedCmParametersResponse) GetProvidersOk() ([]Provider, bool) { } // HasProviders returns a boolean if a field has been set. -func (o *GetFedCmParametersResponse) HasProviders() bool { +func (o *CreateFedcmFlowResponse) HasProviders() bool { if o != nil && o.Providers != nil { return true } @@ -98,11 +98,11 @@ func (o *GetFedCmParametersResponse) HasProviders() bool { } // SetProviders gets a reference to the given []Provider and assigns it to the Providers field. -func (o *GetFedCmParametersResponse) SetProviders(v []Provider) { +func (o *CreateFedcmFlowResponse) SetProviders(v []Provider) { o.Providers = v } -func (o GetFedCmParametersResponse) MarshalJSON() ([]byte, error) { +func (o CreateFedcmFlowResponse) MarshalJSON() ([]byte, error) { toSerialize := map[string]interface{}{} if o.CsrfToken != nil { toSerialize["csrf_token"] = o.CsrfToken @@ -113,38 +113,38 @@ func (o GetFedCmParametersResponse) MarshalJSON() ([]byte, error) { return json.Marshal(toSerialize) } -type NullableGetFedCmParametersResponse struct { - value *GetFedCmParametersResponse +type NullableCreateFedcmFlowResponse struct { + value *CreateFedcmFlowResponse isSet bool } -func (v NullableGetFedCmParametersResponse) Get() *GetFedCmParametersResponse { +func (v NullableCreateFedcmFlowResponse) Get() *CreateFedcmFlowResponse { return v.value } -func (v *NullableGetFedCmParametersResponse) Set(val *GetFedCmParametersResponse) { +func (v *NullableCreateFedcmFlowResponse) Set(val *CreateFedcmFlowResponse) { v.value = val v.isSet = true } -func (v NullableGetFedCmParametersResponse) IsSet() bool { +func (v NullableCreateFedcmFlowResponse) IsSet() bool { return v.isSet } -func (v *NullableGetFedCmParametersResponse) Unset() { +func (v *NullableCreateFedcmFlowResponse) Unset() { v.value = nil v.isSet = false } -func NewNullableGetFedCmParametersResponse(val *GetFedCmParametersResponse) *NullableGetFedCmParametersResponse { - return &NullableGetFedCmParametersResponse{value: val, isSet: true} +func NewNullableCreateFedcmFlowResponse(val *CreateFedcmFlowResponse) *NullableCreateFedcmFlowResponse { + return &NullableCreateFedcmFlowResponse{value: val, isSet: true} } -func (v NullableGetFedCmParametersResponse) MarshalJSON() ([]byte, error) { +func (v NullableCreateFedcmFlowResponse) MarshalJSON() ([]byte, error) { return json.Marshal(v.value) } -func (v *NullableGetFedCmParametersResponse) UnmarshalJSON(src []byte) error { +func (v *NullableCreateFedcmFlowResponse) UnmarshalJSON(src []byte) error { v.isSet = true return json.Unmarshal(src, &v.value) } diff --git a/internal/client-go/model_submit_fedcm_token_body.go b/internal/client-go/model_update_fedcm_flow_body.go similarity index 63% rename from internal/client-go/model_submit_fedcm_token_body.go rename to internal/client-go/model_update_fedcm_flow_body.go index a8032c3a8cce..2d630d8ece53 100644 --- a/internal/client-go/model_submit_fedcm_token_body.go +++ b/internal/client-go/model_update_fedcm_flow_body.go @@ -15,8 +15,8 @@ import ( "encoding/json" ) -// SubmitFedcmTokenBody struct for SubmitFedcmTokenBody -type SubmitFedcmTokenBody struct { +// UpdateFedcmFlowBody struct for UpdateFedcmFlowBody +type UpdateFedcmFlowBody struct { // CSRFToken is the anti-CSRF token. CsrfToken string `json:"csrf_token"` // Nonce is the nonce that was used in the `navigator.credentials.get` call. If specified, it must match the `nonce` claim in the token. @@ -25,27 +25,27 @@ type SubmitFedcmTokenBody struct { Token string `json:"token"` } -// NewSubmitFedcmTokenBody instantiates a new SubmitFedcmTokenBody object +// NewUpdateFedcmFlowBody instantiates a new UpdateFedcmFlowBody object // This constructor will assign default values to properties that have it defined, // and makes sure properties required by API are set, but the set of arguments // will change when the set of required properties is changed -func NewSubmitFedcmTokenBody(csrfToken string, token string) *SubmitFedcmTokenBody { - this := SubmitFedcmTokenBody{} +func NewUpdateFedcmFlowBody(csrfToken string, token string) *UpdateFedcmFlowBody { + this := UpdateFedcmFlowBody{} this.CsrfToken = csrfToken this.Token = token return &this } -// NewSubmitFedcmTokenBodyWithDefaults instantiates a new SubmitFedcmTokenBody object +// NewUpdateFedcmFlowBodyWithDefaults instantiates a new UpdateFedcmFlowBody object // This constructor will only assign default values to properties that have it defined, // but it doesn't guarantee that properties required by API are set -func NewSubmitFedcmTokenBodyWithDefaults() *SubmitFedcmTokenBody { - this := SubmitFedcmTokenBody{} +func NewUpdateFedcmFlowBodyWithDefaults() *UpdateFedcmFlowBody { + this := UpdateFedcmFlowBody{} return &this } // GetCsrfToken returns the CsrfToken field value -func (o *SubmitFedcmTokenBody) GetCsrfToken() string { +func (o *UpdateFedcmFlowBody) GetCsrfToken() string { if o == nil { var ret string return ret @@ -56,7 +56,7 @@ func (o *SubmitFedcmTokenBody) GetCsrfToken() string { // GetCsrfTokenOk returns a tuple with the CsrfToken field value // and a boolean to check if the value has been set. -func (o *SubmitFedcmTokenBody) GetCsrfTokenOk() (*string, bool) { +func (o *UpdateFedcmFlowBody) GetCsrfTokenOk() (*string, bool) { if o == nil { return nil, false } @@ -64,12 +64,12 @@ func (o *SubmitFedcmTokenBody) GetCsrfTokenOk() (*string, bool) { } // SetCsrfToken sets field value -func (o *SubmitFedcmTokenBody) SetCsrfToken(v string) { +func (o *UpdateFedcmFlowBody) SetCsrfToken(v string) { o.CsrfToken = v } // GetNonce returns the Nonce field value if set, zero value otherwise. -func (o *SubmitFedcmTokenBody) GetNonce() string { +func (o *UpdateFedcmFlowBody) GetNonce() string { if o == nil || o.Nonce == nil { var ret string return ret @@ -79,7 +79,7 @@ func (o *SubmitFedcmTokenBody) GetNonce() string { // GetNonceOk returns a tuple with the Nonce field value if set, nil otherwise // and a boolean to check if the value has been set. -func (o *SubmitFedcmTokenBody) GetNonceOk() (*string, bool) { +func (o *UpdateFedcmFlowBody) GetNonceOk() (*string, bool) { if o == nil || o.Nonce == nil { return nil, false } @@ -87,7 +87,7 @@ func (o *SubmitFedcmTokenBody) GetNonceOk() (*string, bool) { } // HasNonce returns a boolean if a field has been set. -func (o *SubmitFedcmTokenBody) HasNonce() bool { +func (o *UpdateFedcmFlowBody) HasNonce() bool { if o != nil && o.Nonce != nil { return true } @@ -96,12 +96,12 @@ func (o *SubmitFedcmTokenBody) HasNonce() bool { } // SetNonce gets a reference to the given string and assigns it to the Nonce field. -func (o *SubmitFedcmTokenBody) SetNonce(v string) { +func (o *UpdateFedcmFlowBody) SetNonce(v string) { o.Nonce = &v } // GetToken returns the Token field value -func (o *SubmitFedcmTokenBody) GetToken() string { +func (o *UpdateFedcmFlowBody) GetToken() string { if o == nil { var ret string return ret @@ -112,7 +112,7 @@ func (o *SubmitFedcmTokenBody) GetToken() string { // GetTokenOk returns a tuple with the Token field value // and a boolean to check if the value has been set. -func (o *SubmitFedcmTokenBody) GetTokenOk() (*string, bool) { +func (o *UpdateFedcmFlowBody) GetTokenOk() (*string, bool) { if o == nil { return nil, false } @@ -120,11 +120,11 @@ func (o *SubmitFedcmTokenBody) GetTokenOk() (*string, bool) { } // SetToken sets field value -func (o *SubmitFedcmTokenBody) SetToken(v string) { +func (o *UpdateFedcmFlowBody) SetToken(v string) { o.Token = v } -func (o SubmitFedcmTokenBody) MarshalJSON() ([]byte, error) { +func (o UpdateFedcmFlowBody) MarshalJSON() ([]byte, error) { toSerialize := map[string]interface{}{} if true { toSerialize["csrf_token"] = o.CsrfToken @@ -138,38 +138,38 @@ func (o SubmitFedcmTokenBody) MarshalJSON() ([]byte, error) { return json.Marshal(toSerialize) } -type NullableSubmitFedcmTokenBody struct { - value *SubmitFedcmTokenBody +type NullableUpdateFedcmFlowBody struct { + value *UpdateFedcmFlowBody isSet bool } -func (v NullableSubmitFedcmTokenBody) Get() *SubmitFedcmTokenBody { +func (v NullableUpdateFedcmFlowBody) Get() *UpdateFedcmFlowBody { return v.value } -func (v *NullableSubmitFedcmTokenBody) Set(val *SubmitFedcmTokenBody) { +func (v *NullableUpdateFedcmFlowBody) Set(val *UpdateFedcmFlowBody) { v.value = val v.isSet = true } -func (v NullableSubmitFedcmTokenBody) IsSet() bool { +func (v NullableUpdateFedcmFlowBody) IsSet() bool { return v.isSet } -func (v *NullableSubmitFedcmTokenBody) Unset() { +func (v *NullableUpdateFedcmFlowBody) Unset() { v.value = nil v.isSet = false } -func NewNullableSubmitFedcmTokenBody(val *SubmitFedcmTokenBody) *NullableSubmitFedcmTokenBody { - return &NullableSubmitFedcmTokenBody{value: val, isSet: true} +func NewNullableUpdateFedcmFlowBody(val *UpdateFedcmFlowBody) *NullableUpdateFedcmFlowBody { + return &NullableUpdateFedcmFlowBody{value: val, isSet: true} } -func (v NullableSubmitFedcmTokenBody) MarshalJSON() ([]byte, error) { +func (v NullableUpdateFedcmFlowBody) MarshalJSON() ([]byte, error) { return json.Marshal(v.value) } -func (v *NullableSubmitFedcmTokenBody) UnmarshalJSON(src []byte) error { +func (v *NullableUpdateFedcmFlowBody) UnmarshalJSON(src []byte) error { v.isSet = true return json.Unmarshal(src, &v.value) } diff --git a/internal/httpclient/.openapi-generator/FILES b/internal/httpclient/.openapi-generator/FILES index 304b5b327fb8..e5608d3b70a9 100644 --- a/internal/httpclient/.openapi-generator/FILES +++ b/internal/httpclient/.openapi-generator/FILES @@ -24,6 +24,7 @@ docs/ContinueWithVerificationUiFlow.md docs/CourierAPI.md docs/CourierMessageStatus.md docs/CourierMessageType.md +docs/CreateFedcmFlowResponse.md docs/CreateIdentityBody.md docs/CreateRecoveryCodeForIdentityBody.md docs/CreateRecoveryLinkForIdentityBody.md @@ -35,7 +36,6 @@ docs/ErrorGeneric.md docs/FlowError.md docs/FrontendAPI.md docs/GenericError.md -docs/GetFedCmParametersResponse.md docs/GetVersion200Response.md docs/HealthNotReadyStatus.md docs/HealthStatus.md @@ -85,7 +85,6 @@ docs/SessionAuthenticationMethod.md docs/SessionDevice.md docs/SettingsFlow.md docs/SettingsFlowState.md -docs/SubmitFedcmTokenBody.md docs/SuccessfulCodeExchangeResponse.md docs/SuccessfulNativeLogin.md docs/SuccessfulNativeRegistration.md @@ -101,6 +100,7 @@ docs/UiNodeMeta.md docs/UiNodeScriptAttributes.md docs/UiNodeTextAttributes.md docs/UiText.md +docs/UpdateFedcmFlowBody.md docs/UpdateIdentityBody.md docs/UpdateLoginFlowBody.md docs/UpdateLoginFlowWithCodeMethod.md @@ -153,6 +153,7 @@ model_continue_with_verification_ui.go model_continue_with_verification_ui_flow.go model_courier_message_status.go model_courier_message_type.go +model_create_fedcm_flow_response.go model_create_identity_body.go model_create_recovery_code_for_identity_body.go model_create_recovery_link_for_identity_body.go @@ -163,7 +164,6 @@ model_error_flow_replaced.go model_error_generic.go model_flow_error.go model_generic_error.go -model_get_fed_cm_parameters_response.go model_get_version_200_response.go model_health_not_ready_status.go model_health_status.go @@ -211,7 +211,6 @@ model_session_authentication_method.go model_session_device.go model_settings_flow.go model_settings_flow_state.go -model_submit_fedcm_token_body.go model_successful_code_exchange_response.go model_successful_native_login.go model_successful_native_registration.go @@ -227,6 +226,7 @@ model_ui_node_meta.go model_ui_node_script_attributes.go model_ui_node_text_attributes.go model_ui_text.go +model_update_fedcm_flow_body.go model_update_identity_body.go model_update_login_flow_body.go model_update_login_flow_with_code_method.go diff --git a/internal/httpclient/README.md b/internal/httpclient/README.md index e9657b0432f8..b418e308083f 100644 --- a/internal/httpclient/README.md +++ b/internal/httpclient/README.md @@ -87,6 +87,7 @@ Class | Method | HTTP request | Description *FrontendAPI* | [**CreateBrowserRegistrationFlow**](docs/FrontendAPI.md#createbrowserregistrationflow) | **Get** /self-service/registration/browser | Create Registration Flow for Browsers *FrontendAPI* | [**CreateBrowserSettingsFlow**](docs/FrontendAPI.md#createbrowsersettingsflow) | **Get** /self-service/settings/browser | Create Settings Flow for Browsers *FrontendAPI* | [**CreateBrowserVerificationFlow**](docs/FrontendAPI.md#createbrowserverificationflow) | **Get** /self-service/verification/browser | Create Verification Flow for Browser Clients +*FrontendAPI* | [**CreateFedcmFlow**](docs/FrontendAPI.md#createfedcmflow) | **Get** /self-service/fed-cm/parameters | Get FedCM Parameters *FrontendAPI* | [**CreateNativeLoginFlow**](docs/FrontendAPI.md#createnativeloginflow) | **Get** /self-service/login/api | Create Login Flow for Native Apps *FrontendAPI* | [**CreateNativeRecoveryFlow**](docs/FrontendAPI.md#createnativerecoveryflow) | **Get** /self-service/recovery/api | Create Recovery Flow for Native Apps *FrontendAPI* | [**CreateNativeRegistrationFlow**](docs/FrontendAPI.md#createnativeregistrationflow) | **Get** /self-service/registration/api | Create Registration Flow for Native Apps @@ -95,7 +96,6 @@ Class | Method | HTTP request | Description *FrontendAPI* | [**DisableMyOtherSessions**](docs/FrontendAPI.md#disablemyothersessions) | **Delete** /sessions | Disable my other sessions *FrontendAPI* | [**DisableMySession**](docs/FrontendAPI.md#disablemysession) | **Delete** /sessions/{id} | Disable one of my sessions *FrontendAPI* | [**ExchangeSessionToken**](docs/FrontendAPI.md#exchangesessiontoken) | **Get** /sessions/token-exchange | Exchange Session Token -*FrontendAPI* | [**GetFedcmParameters**](docs/FrontendAPI.md#getfedcmparameters) | **Get** /self-service/fed-cm/parameters | Get FedCM Parameters *FrontendAPI* | [**GetFlowError**](docs/FrontendAPI.md#getflowerror) | **Get** /self-service/errors | Get User-Flow Errors *FrontendAPI* | [**GetLoginFlow**](docs/FrontendAPI.md#getloginflow) | **Get** /self-service/login/flows | Get Login Flow *FrontendAPI* | [**GetRecoveryFlow**](docs/FrontendAPI.md#getrecoveryflow) | **Get** /self-service/recovery/flows | Get Recovery Flow @@ -105,8 +105,8 @@ Class | Method | HTTP request | Description *FrontendAPI* | [**GetWebAuthnJavaScript**](docs/FrontendAPI.md#getwebauthnjavascript) | **Get** /.well-known/ory/webauthn.js | Get WebAuthn JavaScript *FrontendAPI* | [**ListMySessions**](docs/FrontendAPI.md#listmysessions) | **Get** /sessions | Get My Active Sessions *FrontendAPI* | [**PerformNativeLogout**](docs/FrontendAPI.md#performnativelogout) | **Delete** /self-service/logout/api | Perform Logout for Native Apps -*FrontendAPI* | [**SubmitFedcmToken**](docs/FrontendAPI.md#submitfedcmtoken) | **Post** /self-service/fed-cm/token | Submit a FedCM token *FrontendAPI* | [**ToSession**](docs/FrontendAPI.md#tosession) | **Get** /sessions/whoami | Check Who the Current HTTP Session Belongs To +*FrontendAPI* | [**UpdateFedcmFlow**](docs/FrontendAPI.md#updatefedcmflow) | **Post** /self-service/fed-cm/token | Submit a FedCM token *FrontendAPI* | [**UpdateLoginFlow**](docs/FrontendAPI.md#updateloginflow) | **Post** /self-service/login | Submit a Login Flow *FrontendAPI* | [**UpdateLogoutFlow**](docs/FrontendAPI.md#updatelogoutflow) | **Get** /self-service/logout | Update Logout Flow *FrontendAPI* | [**UpdateRecoveryFlow**](docs/FrontendAPI.md#updaterecoveryflow) | **Post** /self-service/recovery | Update Recovery Flow @@ -152,6 +152,7 @@ Class | Method | HTTP request | Description - [ContinueWithVerificationUiFlow](docs/ContinueWithVerificationUiFlow.md) - [CourierMessageStatus](docs/CourierMessageStatus.md) - [CourierMessageType](docs/CourierMessageType.md) + - [CreateFedcmFlowResponse](docs/CreateFedcmFlowResponse.md) - [CreateIdentityBody](docs/CreateIdentityBody.md) - [CreateRecoveryCodeForIdentityBody](docs/CreateRecoveryCodeForIdentityBody.md) - [CreateRecoveryLinkForIdentityBody](docs/CreateRecoveryLinkForIdentityBody.md) @@ -162,7 +163,6 @@ Class | Method | HTTP request | Description - [ErrorGeneric](docs/ErrorGeneric.md) - [FlowError](docs/FlowError.md) - [GenericError](docs/GenericError.md) - - [GetFedCmParametersResponse](docs/GetFedCmParametersResponse.md) - [GetVersion200Response](docs/GetVersion200Response.md) - [HealthNotReadyStatus](docs/HealthNotReadyStatus.md) - [HealthStatus](docs/HealthStatus.md) @@ -210,7 +210,6 @@ Class | Method | HTTP request | Description - [SessionDevice](docs/SessionDevice.md) - [SettingsFlow](docs/SettingsFlow.md) - [SettingsFlowState](docs/SettingsFlowState.md) - - [SubmitFedcmTokenBody](docs/SubmitFedcmTokenBody.md) - [SuccessfulCodeExchangeResponse](docs/SuccessfulCodeExchangeResponse.md) - [SuccessfulNativeLogin](docs/SuccessfulNativeLogin.md) - [SuccessfulNativeRegistration](docs/SuccessfulNativeRegistration.md) @@ -226,6 +225,7 @@ Class | Method | HTTP request | Description - [UiNodeScriptAttributes](docs/UiNodeScriptAttributes.md) - [UiNodeTextAttributes](docs/UiNodeTextAttributes.md) - [UiText](docs/UiText.md) + - [UpdateFedcmFlowBody](docs/UpdateFedcmFlowBody.md) - [UpdateIdentityBody](docs/UpdateIdentityBody.md) - [UpdateLoginFlowBody](docs/UpdateLoginFlowBody.md) - [UpdateLoginFlowWithCodeMethod](docs/UpdateLoginFlowWithCodeMethod.md) diff --git a/internal/httpclient/api_frontend.go b/internal/httpclient/api_frontend.go index 97f0ca8b82c7..cd243b065b4b 100644 --- a/internal/httpclient/api_frontend.go +++ b/internal/httpclient/api_frontend.go @@ -201,6 +201,20 @@ type FrontendAPI interface { */ CreateBrowserVerificationFlowExecute(r FrontendAPIApiCreateBrowserVerificationFlowRequest) (*VerificationFlow, *http.Response, error) + /* + * CreateFedcmFlow Get FedCM Parameters + * This endpoint returns a list of all available FedCM providers. It is only supported on the Ory Network. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @return FrontendAPIApiCreateFedcmFlowRequest + */ + CreateFedcmFlow(ctx context.Context) FrontendAPIApiCreateFedcmFlowRequest + + /* + * CreateFedcmFlowExecute executes the request + * @return CreateFedcmFlowResponse + */ + CreateFedcmFlowExecute(r FrontendAPIApiCreateFedcmFlowRequest) (*CreateFedcmFlowResponse, *http.Response, error) + /* * CreateNativeLoginFlow Create Login Flow for Native Apps * This endpoint initiates a login flow for native apps that do not use a browser, such as mobile devices, smart TVs, and so on. @@ -394,20 +408,6 @@ type FrontendAPI interface { */ ExchangeSessionTokenExecute(r FrontendAPIApiExchangeSessionTokenRequest) (*SuccessfulNativeLogin, *http.Response, error) - /* - * GetFedcmParameters Get FedCM Parameters - * This endpoint returns a list of all available FedCM providers. It is only supported on the Ory Network. - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @return FrontendAPIApiGetFedcmParametersRequest - */ - GetFedcmParameters(ctx context.Context) FrontendAPIApiGetFedcmParametersRequest - - /* - * GetFedcmParametersExecute executes the request - * @return GetFedCmParametersResponse - */ - GetFedcmParametersExecute(r FrontendAPIApiGetFedcmParametersRequest) (*GetFedCmParametersResponse, *http.Response, error) - /* * GetFlowError Get User-Flow Errors * This endpoint returns the error associated with a user-facing self service errors. @@ -651,23 +651,6 @@ type FrontendAPI interface { */ PerformNativeLogoutExecute(r FrontendAPIApiPerformNativeLogoutRequest) (*http.Response, error) - /* - * SubmitFedcmToken Submit a FedCM token - * Use this endpoint to submit a token from a FedCM provider through - `navigator.credentials.get` and log the user in. The parameters from - `navigator.credentials.get` must have come from `GET - self-service/fed-cm/parameters`. - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @return FrontendAPIApiSubmitFedcmTokenRequest - */ - SubmitFedcmToken(ctx context.Context) FrontendAPIApiSubmitFedcmTokenRequest - - /* - * SubmitFedcmTokenExecute executes the request - * @return SuccessfulNativeLogin - */ - SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcmTokenRequest) (*SuccessfulNativeLogin, *http.Response, error) - /* * ToSession Check Who the Current HTTP Session Belongs To * Uses the HTTP Headers in the GET request to determine (e.g. by using checking the cookies) who is authenticated. @@ -740,6 +723,23 @@ type FrontendAPI interface { */ ToSessionExecute(r FrontendAPIApiToSessionRequest) (*Session, *http.Response, error) + /* + * UpdateFedcmFlow Submit a FedCM token + * Use this endpoint to submit a token from a FedCM provider through + `navigator.credentials.get` and log the user in. The parameters from + `navigator.credentials.get` must have come from `GET + self-service/fed-cm/parameters`. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @return FrontendAPIApiUpdateFedcmFlowRequest + */ + UpdateFedcmFlow(ctx context.Context) FrontendAPIApiUpdateFedcmFlowRequest + + /* + * UpdateFedcmFlowExecute executes the request + * @return SuccessfulNativeLogin + */ + UpdateFedcmFlowExecute(r FrontendAPIApiUpdateFedcmFlowRequest) (*SuccessfulNativeLogin, *http.Response, error) + /* * UpdateLoginFlow Submit a Login Flow * Use this endpoint to complete a login flow. This endpoint @@ -1921,6 +1921,124 @@ func (a *FrontendAPIService) CreateBrowserVerificationFlowExecute(r FrontendAPIA return localVarReturnValue, localVarHTTPResponse, nil } +type FrontendAPIApiCreateFedcmFlowRequest struct { + ctx context.Context + ApiService FrontendAPI +} + +func (r FrontendAPIApiCreateFedcmFlowRequest) Execute() (*CreateFedcmFlowResponse, *http.Response, error) { + return r.ApiService.CreateFedcmFlowExecute(r) +} + +/* + * CreateFedcmFlow Get FedCM Parameters + * This endpoint returns a list of all available FedCM providers. It is only supported on the Ory Network. + * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). + * @return FrontendAPIApiCreateFedcmFlowRequest + */ +func (a *FrontendAPIService) CreateFedcmFlow(ctx context.Context) FrontendAPIApiCreateFedcmFlowRequest { + return FrontendAPIApiCreateFedcmFlowRequest{ + ApiService: a, + ctx: ctx, + } +} + +/* + * Execute executes the request + * @return CreateFedcmFlowResponse + */ +func (a *FrontendAPIService) CreateFedcmFlowExecute(r FrontendAPIApiCreateFedcmFlowRequest) (*CreateFedcmFlowResponse, *http.Response, error) { + var ( + localVarHTTPMethod = http.MethodGet + localVarPostBody interface{} + localVarFormFileName string + localVarFileName string + localVarFileBytes []byte + localVarReturnValue *CreateFedcmFlowResponse + ) + + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.CreateFedcmFlow") + if err != nil { + return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} + } + + localVarPath := localBasePath + "/self-service/fed-cm/parameters" + + localVarHeaderParams := make(map[string]string) + localVarQueryParams := url.Values{} + localVarFormParams := url.Values{} + + // to determine the Content-Type header + localVarHTTPContentTypes := []string{} + + // set Content-Type header + localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) + if localVarHTTPContentType != "" { + localVarHeaderParams["Content-Type"] = localVarHTTPContentType + } + + // to determine the Accept header + localVarHTTPHeaderAccepts := []string{"application/json"} + + // set Accept header + localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) + if localVarHTTPHeaderAccept != "" { + localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept + } + req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) + if err != nil { + return localVarReturnValue, nil, err + } + + localVarHTTPResponse, err := a.client.callAPI(req) + if err != nil || localVarHTTPResponse == nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + localVarBody, err := io.ReadAll(io.LimitReader(localVarHTTPResponse.Body, 1024*1024)) + localVarHTTPResponse.Body.Close() + localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) + if err != nil { + return localVarReturnValue, localVarHTTPResponse, err + } + + if localVarHTTPResponse.StatusCode >= 300 { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: localVarHTTPResponse.Status, + } + if localVarHTTPResponse.StatusCode == 400 { + var v ErrorGeneric + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + var v ErrorGeneric + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } + + err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr := &GenericOpenAPIError{ + body: localVarBody, + error: err.Error(), + } + return localVarReturnValue, localVarHTTPResponse, newErr + } + + return localVarReturnValue, localVarHTTPResponse, nil +} + type FrontendAPIApiCreateNativeLoginFlowRequest struct { ctx context.Context ApiService FrontendAPI @@ -3135,124 +3253,6 @@ func (a *FrontendAPIService) ExchangeSessionTokenExecute(r FrontendAPIApiExchang return localVarReturnValue, localVarHTTPResponse, nil } -type FrontendAPIApiGetFedcmParametersRequest struct { - ctx context.Context - ApiService FrontendAPI -} - -func (r FrontendAPIApiGetFedcmParametersRequest) Execute() (*GetFedCmParametersResponse, *http.Response, error) { - return r.ApiService.GetFedcmParametersExecute(r) -} - -/* - * GetFedcmParameters Get FedCM Parameters - * This endpoint returns a list of all available FedCM providers. It is only supported on the Ory Network. - * @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - * @return FrontendAPIApiGetFedcmParametersRequest - */ -func (a *FrontendAPIService) GetFedcmParameters(ctx context.Context) FrontendAPIApiGetFedcmParametersRequest { - return FrontendAPIApiGetFedcmParametersRequest{ - ApiService: a, - ctx: ctx, - } -} - -/* - * Execute executes the request - * @return GetFedCmParametersResponse - */ -func (a *FrontendAPIService) GetFedcmParametersExecute(r FrontendAPIApiGetFedcmParametersRequest) (*GetFedCmParametersResponse, *http.Response, error) { - var ( - localVarHTTPMethod = http.MethodGet - localVarPostBody interface{} - localVarFormFileName string - localVarFileName string - localVarFileBytes []byte - localVarReturnValue *GetFedCmParametersResponse - ) - - localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.GetFedcmParameters") - if err != nil { - return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} - } - - localVarPath := localBasePath + "/self-service/fed-cm/parameters" - - localVarHeaderParams := make(map[string]string) - localVarQueryParams := url.Values{} - localVarFormParams := url.Values{} - - // to determine the Content-Type header - localVarHTTPContentTypes := []string{} - - // set Content-Type header - localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) - if localVarHTTPContentType != "" { - localVarHeaderParams["Content-Type"] = localVarHTTPContentType - } - - // to determine the Accept header - localVarHTTPHeaderAccepts := []string{"application/json"} - - // set Accept header - localVarHTTPHeaderAccept := selectHeaderAccept(localVarHTTPHeaderAccepts) - if localVarHTTPHeaderAccept != "" { - localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept - } - req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) - if err != nil { - return localVarReturnValue, nil, err - } - - localVarHTTPResponse, err := a.client.callAPI(req) - if err != nil || localVarHTTPResponse == nil { - return localVarReturnValue, localVarHTTPResponse, err - } - - localVarBody, err := io.ReadAll(io.LimitReader(localVarHTTPResponse.Body, 1024*1024)) - localVarHTTPResponse.Body.Close() - localVarHTTPResponse.Body = io.NopCloser(bytes.NewBuffer(localVarBody)) - if err != nil { - return localVarReturnValue, localVarHTTPResponse, err - } - - if localVarHTTPResponse.StatusCode >= 300 { - newErr := &GenericOpenAPIError{ - body: localVarBody, - error: localVarHTTPResponse.Status, - } - if localVarHTTPResponse.StatusCode == 400 { - var v ErrorGeneric - err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHTTPResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHTTPResponse, newErr - } - var v ErrorGeneric - err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHTTPResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHTTPResponse, newErr - } - - err = a.client.decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) - if err != nil { - newErr := &GenericOpenAPIError{ - body: localVarBody, - error: err.Error(), - } - return localVarReturnValue, localVarHTTPResponse, newErr - } - - return localVarReturnValue, localVarHTTPResponse, nil -} - type FrontendAPIApiGetFlowErrorRequest struct { ctx context.Context ApiService FrontendAPI @@ -4688,33 +4688,98 @@ func (a *FrontendAPIService) PerformNativeLogoutExecute(r FrontendAPIApiPerformN return localVarHTTPResponse, nil } -type FrontendAPIApiSubmitFedcmTokenRequest struct { - ctx context.Context - ApiService FrontendAPI - submitFedcmTokenBody *SubmitFedcmTokenBody +type FrontendAPIApiToSessionRequest struct { + ctx context.Context + ApiService FrontendAPI + xSessionToken *string + cookie *string + tokenizeAs *string } -func (r FrontendAPIApiSubmitFedcmTokenRequest) SubmitFedcmTokenBody(submitFedcmTokenBody SubmitFedcmTokenBody) FrontendAPIApiSubmitFedcmTokenRequest { - r.submitFedcmTokenBody = &submitFedcmTokenBody +func (r FrontendAPIApiToSessionRequest) XSessionToken(xSessionToken string) FrontendAPIApiToSessionRequest { + r.xSessionToken = &xSessionToken + return r +} +func (r FrontendAPIApiToSessionRequest) Cookie(cookie string) FrontendAPIApiToSessionRequest { + r.cookie = &cookie + return r +} +func (r FrontendAPIApiToSessionRequest) TokenizeAs(tokenizeAs string) FrontendAPIApiToSessionRequest { + r.tokenizeAs = &tokenizeAs return r } -func (r FrontendAPIApiSubmitFedcmTokenRequest) Execute() (*SuccessfulNativeLogin, *http.Response, error) { - return r.ApiService.SubmitFedcmTokenExecute(r) +func (r FrontendAPIApiToSessionRequest) Execute() (*Session, *http.Response, error) { + return r.ApiService.ToSessionExecute(r) } /* - - SubmitFedcmToken Submit a FedCM token - - Use this endpoint to submit a token from a FedCM provider through + - ToSession Check Who the Current HTTP Session Belongs To + - Uses the HTTP Headers in the GET request to determine (e.g. by using checking the cookies) who is authenticated. -`navigator.credentials.get` and log the user in. The parameters from -`navigator.credentials.get` must have come from `GET -self-service/fed-cm/parameters`. +Returns a session object in the body or 401 if the credentials are invalid or no credentials were sent. +When the request it successful it adds the user ID to the 'X-Kratos-Authenticated-Identity-Id' header +in the response. + +If you call this endpoint from a server-side application, you must forward the HTTP Cookie Header to this endpoint: + +```js +pseudo-code example +router.get('/protected-endpoint', async function (req, res) { +const session = await client.toSession(undefined, req.header('cookie')) + +console.log(session) +}) +``` + +When calling this endpoint from a non-browser application (e.g. mobile app) you must include the session token: + +```js +pseudo-code example +... +const session = await client.toSession("the-session-token") + +console.log(session) +``` + +When using a token template, the token is included in the `tokenized` field of the session. + +```js +pseudo-code example +... +const session = await client.toSession("the-session-token", { tokenize_as: "example-jwt-template" }) + +console.log(session.tokenized) // The JWT +``` + +Depending on your configuration this endpoint might return a 403 status code if the session has a lower Authenticator +Assurance Level (AAL) than is possible for the identity. This can happen if the identity has password + webauthn +credentials (which would result in AAL2) but the session has only AAL1. If this error occurs, ask the user +to sign in with the second factor or change the configuration. + +This endpoint is useful for: + +AJAX calls. Remember to send credentials and set up CORS correctly! +Reverse proxies and API Gateways +Server-side calls - use the `X-Session-Token` header! + +This endpoint authenticates users by checking: + +if the `Cookie` HTTP header was set containing an Ory Kratos Session Cookie; +if the `Authorization: bearer ` HTTP header was set with a valid Ory Kratos Session Token; +if the `X-Session-Token` HTTP header was set with a valid Ory Kratos Session Token. + +If none of these headers are set or the cookie or token are invalid, the endpoint returns a HTTP 401 status code. + +As explained above, this request may fail due to several reasons. The `error.id` can be one of: + +`session_inactive`: No active session was found in the request (e.g. no Ory Session Cookie / Ory Session Token). +`session_aal2_required`: An active session was found but it does not fulfil the Authenticator Assurance Level, implying that the session must (e.g.) authenticate the second factor. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - - @return FrontendAPIApiSubmitFedcmTokenRequest + - @return FrontendAPIApiToSessionRequest */ -func (a *FrontendAPIService) SubmitFedcmToken(ctx context.Context) FrontendAPIApiSubmitFedcmTokenRequest { - return FrontendAPIApiSubmitFedcmTokenRequest{ +func (a *FrontendAPIService) ToSession(ctx context.Context) FrontendAPIApiToSessionRequest { + return FrontendAPIApiToSessionRequest{ ApiService: a, ctx: ctx, } @@ -4722,34 +4787,34 @@ func (a *FrontendAPIService) SubmitFedcmToken(ctx context.Context) FrontendAPIAp /* * Execute executes the request - * @return SuccessfulNativeLogin + * @return Session */ -func (a *FrontendAPIService) SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcmTokenRequest) (*SuccessfulNativeLogin, *http.Response, error) { +func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) (*Session, *http.Response, error) { var ( - localVarHTTPMethod = http.MethodPost + localVarHTTPMethod = http.MethodGet localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue *SuccessfulNativeLogin + localVarReturnValue *Session ) - localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.SubmitFedcmToken") + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.ToSession") if err != nil { return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} } - localVarPath := localBasePath + "/self-service/fed-cm/token" + localVarPath := localBasePath + "/sessions/whoami" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - if r.submitFedcmTokenBody == nil { - return localVarReturnValue, nil, reportError("submitFedcmTokenBody is required and must be specified") - } + if r.tokenizeAs != nil { + localVarQueryParams.Add("tokenize_as", parameterToString(*r.tokenizeAs, "")) + } // to determine the Content-Type header - localVarHTTPContentTypes := []string{"application/json", "application/x-www-form-urlencoded"} + localVarHTTPContentTypes := []string{} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) @@ -4765,8 +4830,12 @@ func (a *FrontendAPIService) SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcm if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - // body params - localVarPostBody = r.submitFedcmTokenBody + if r.xSessionToken != nil { + localVarHeaderParams["X-Session-Token"] = parameterToString(*r.xSessionToken, "") + } + if r.cookie != nil { + localVarHeaderParams["Cookie"] = parameterToString(*r.cookie, "") + } req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -4789,17 +4858,7 @@ func (a *FrontendAPIService) SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcm body: localVarBody, error: localVarHTTPResponse.Status, } - if localVarHTTPResponse.StatusCode == 400 { - var v LoginFlow - err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) - if err != nil { - newErr.error = err.Error() - return localVarReturnValue, localVarHTTPResponse, newErr - } - newErr.model = v - return localVarReturnValue, localVarHTTPResponse, newErr - } - if localVarHTTPResponse.StatusCode == 410 { + if localVarHTTPResponse.StatusCode == 401 { var v ErrorGeneric err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { @@ -4809,8 +4868,8 @@ func (a *FrontendAPIService) SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcm newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } - if localVarHTTPResponse.StatusCode == 422 { - var v ErrorBrowserLocationChangeRequired + if localVarHTTPResponse.StatusCode == 403 { + var v ErrorGeneric err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() @@ -4841,98 +4900,33 @@ func (a *FrontendAPIService) SubmitFedcmTokenExecute(r FrontendAPIApiSubmitFedcm return localVarReturnValue, localVarHTTPResponse, nil } -type FrontendAPIApiToSessionRequest struct { - ctx context.Context - ApiService FrontendAPI - xSessionToken *string - cookie *string - tokenizeAs *string +type FrontendAPIApiUpdateFedcmFlowRequest struct { + ctx context.Context + ApiService FrontendAPI + updateFedcmFlowBody *UpdateFedcmFlowBody } -func (r FrontendAPIApiToSessionRequest) XSessionToken(xSessionToken string) FrontendAPIApiToSessionRequest { - r.xSessionToken = &xSessionToken - return r -} -func (r FrontendAPIApiToSessionRequest) Cookie(cookie string) FrontendAPIApiToSessionRequest { - r.cookie = &cookie - return r -} -func (r FrontendAPIApiToSessionRequest) TokenizeAs(tokenizeAs string) FrontendAPIApiToSessionRequest { - r.tokenizeAs = &tokenizeAs +func (r FrontendAPIApiUpdateFedcmFlowRequest) UpdateFedcmFlowBody(updateFedcmFlowBody UpdateFedcmFlowBody) FrontendAPIApiUpdateFedcmFlowRequest { + r.updateFedcmFlowBody = &updateFedcmFlowBody return r } -func (r FrontendAPIApiToSessionRequest) Execute() (*Session, *http.Response, error) { - return r.ApiService.ToSessionExecute(r) +func (r FrontendAPIApiUpdateFedcmFlowRequest) Execute() (*SuccessfulNativeLogin, *http.Response, error) { + return r.ApiService.UpdateFedcmFlowExecute(r) } /* - - ToSession Check Who the Current HTTP Session Belongs To - - Uses the HTTP Headers in the GET request to determine (e.g. by using checking the cookies) who is authenticated. - -Returns a session object in the body or 401 if the credentials are invalid or no credentials were sent. -When the request it successful it adds the user ID to the 'X-Kratos-Authenticated-Identity-Id' header -in the response. - -If you call this endpoint from a server-side application, you must forward the HTTP Cookie Header to this endpoint: - -```js -pseudo-code example -router.get('/protected-endpoint', async function (req, res) { -const session = await client.toSession(undefined, req.header('cookie')) - -console.log(session) -}) -``` - -When calling this endpoint from a non-browser application (e.g. mobile app) you must include the session token: - -```js -pseudo-code example -... -const session = await client.toSession("the-session-token") - -console.log(session) -``` - -When using a token template, the token is included in the `tokenized` field of the session. - -```js -pseudo-code example -... -const session = await client.toSession("the-session-token", { tokenize_as: "example-jwt-template" }) - -console.log(session.tokenized) // The JWT -``` - -Depending on your configuration this endpoint might return a 403 status code if the session has a lower Authenticator -Assurance Level (AAL) than is possible for the identity. This can happen if the identity has password + webauthn -credentials (which would result in AAL2) but the session has only AAL1. If this error occurs, ask the user -to sign in with the second factor or change the configuration. - -This endpoint is useful for: - -AJAX calls. Remember to send credentials and set up CORS correctly! -Reverse proxies and API Gateways -Server-side calls - use the `X-Session-Token` header! - -This endpoint authenticates users by checking: - -if the `Cookie` HTTP header was set containing an Ory Kratos Session Cookie; -if the `Authorization: bearer ` HTTP header was set with a valid Ory Kratos Session Token; -if the `X-Session-Token` HTTP header was set with a valid Ory Kratos Session Token. - -If none of these headers are set or the cookie or token are invalid, the endpoint returns a HTTP 401 status code. - -As explained above, this request may fail due to several reasons. The `error.id` can be one of: + - UpdateFedcmFlow Submit a FedCM token + - Use this endpoint to submit a token from a FedCM provider through -`session_inactive`: No active session was found in the request (e.g. no Ory Session Cookie / Ory Session Token). -`session_aal2_required`: An active session was found but it does not fulfil the Authenticator Assurance Level, implying that the session must (e.g.) authenticate the second factor. +`navigator.credentials.get` and log the user in. The parameters from +`navigator.credentials.get` must have come from `GET +self-service/fed-cm/parameters`. - @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background(). - - @return FrontendAPIApiToSessionRequest + - @return FrontendAPIApiUpdateFedcmFlowRequest */ -func (a *FrontendAPIService) ToSession(ctx context.Context) FrontendAPIApiToSessionRequest { - return FrontendAPIApiToSessionRequest{ +func (a *FrontendAPIService) UpdateFedcmFlow(ctx context.Context) FrontendAPIApiUpdateFedcmFlowRequest { + return FrontendAPIApiUpdateFedcmFlowRequest{ ApiService: a, ctx: ctx, } @@ -4940,34 +4934,34 @@ func (a *FrontendAPIService) ToSession(ctx context.Context) FrontendAPIApiToSess /* * Execute executes the request - * @return Session + * @return SuccessfulNativeLogin */ -func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) (*Session, *http.Response, error) { +func (a *FrontendAPIService) UpdateFedcmFlowExecute(r FrontendAPIApiUpdateFedcmFlowRequest) (*SuccessfulNativeLogin, *http.Response, error) { var ( - localVarHTTPMethod = http.MethodGet + localVarHTTPMethod = http.MethodPost localVarPostBody interface{} localVarFormFileName string localVarFileName string localVarFileBytes []byte - localVarReturnValue *Session + localVarReturnValue *SuccessfulNativeLogin ) - localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.ToSession") + localBasePath, err := a.client.cfg.ServerURLWithContext(r.ctx, "FrontendAPIService.UpdateFedcmFlow") if err != nil { return localVarReturnValue, nil, &GenericOpenAPIError{error: err.Error()} } - localVarPath := localBasePath + "/sessions/whoami" + localVarPath := localBasePath + "/self-service/fed-cm/token" localVarHeaderParams := make(map[string]string) localVarQueryParams := url.Values{} localVarFormParams := url.Values{} - - if r.tokenizeAs != nil { - localVarQueryParams.Add("tokenize_as", parameterToString(*r.tokenizeAs, "")) + if r.updateFedcmFlowBody == nil { + return localVarReturnValue, nil, reportError("updateFedcmFlowBody is required and must be specified") } + // to determine the Content-Type header - localVarHTTPContentTypes := []string{} + localVarHTTPContentTypes := []string{"application/json", "application/x-www-form-urlencoded"} // set Content-Type header localVarHTTPContentType := selectHeaderContentType(localVarHTTPContentTypes) @@ -4983,12 +4977,8 @@ func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) if localVarHTTPHeaderAccept != "" { localVarHeaderParams["Accept"] = localVarHTTPHeaderAccept } - if r.xSessionToken != nil { - localVarHeaderParams["X-Session-Token"] = parameterToString(*r.xSessionToken, "") - } - if r.cookie != nil { - localVarHeaderParams["Cookie"] = parameterToString(*r.cookie, "") - } + // body params + localVarPostBody = r.updateFedcmFlowBody req, err := a.client.prepareRequest(r.ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFormFileName, localVarFileName, localVarFileBytes) if err != nil { return localVarReturnValue, nil, err @@ -5011,8 +5001,8 @@ func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) body: localVarBody, error: localVarHTTPResponse.Status, } - if localVarHTTPResponse.StatusCode == 401 { - var v ErrorGeneric + if localVarHTTPResponse.StatusCode == 400 { + var v LoginFlow err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { newErr.error = err.Error() @@ -5021,7 +5011,7 @@ func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } - if localVarHTTPResponse.StatusCode == 403 { + if localVarHTTPResponse.StatusCode == 410 { var v ErrorGeneric err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { @@ -5031,6 +5021,16 @@ func (a *FrontendAPIService) ToSessionExecute(r FrontendAPIApiToSessionRequest) newErr.model = v return localVarReturnValue, localVarHTTPResponse, newErr } + if localVarHTTPResponse.StatusCode == 422 { + var v ErrorBrowserLocationChangeRequired + err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) + if err != nil { + newErr.error = err.Error() + return localVarReturnValue, localVarHTTPResponse, newErr + } + newErr.model = v + return localVarReturnValue, localVarHTTPResponse, newErr + } var v ErrorGeneric err = a.client.decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type")) if err != nil { diff --git a/internal/httpclient/model_get_fed_cm_parameters_response.go b/internal/httpclient/model_create_fedcm_flow_response.go similarity index 59% rename from internal/httpclient/model_get_fed_cm_parameters_response.go rename to internal/httpclient/model_create_fedcm_flow_response.go index 1563b7e2cee2..fdca32672c63 100644 --- a/internal/httpclient/model_get_fed_cm_parameters_response.go +++ b/internal/httpclient/model_create_fedcm_flow_response.go @@ -15,31 +15,31 @@ import ( "encoding/json" ) -// GetFedCmParametersResponse Contains a list of all available FedCM providers. -type GetFedCmParametersResponse struct { +// CreateFedcmFlowResponse Contains a list of all available FedCM providers. +type CreateFedcmFlowResponse struct { CsrfToken *string `json:"csrf_token,omitempty"` Providers []Provider `json:"providers,omitempty"` } -// NewGetFedCmParametersResponse instantiates a new GetFedCmParametersResponse object +// NewCreateFedcmFlowResponse instantiates a new CreateFedcmFlowResponse object // This constructor will assign default values to properties that have it defined, // and makes sure properties required by API are set, but the set of arguments // will change when the set of required properties is changed -func NewGetFedCmParametersResponse() *GetFedCmParametersResponse { - this := GetFedCmParametersResponse{} +func NewCreateFedcmFlowResponse() *CreateFedcmFlowResponse { + this := CreateFedcmFlowResponse{} return &this } -// NewGetFedCmParametersResponseWithDefaults instantiates a new GetFedCmParametersResponse object +// NewCreateFedcmFlowResponseWithDefaults instantiates a new CreateFedcmFlowResponse object // This constructor will only assign default values to properties that have it defined, // but it doesn't guarantee that properties required by API are set -func NewGetFedCmParametersResponseWithDefaults() *GetFedCmParametersResponse { - this := GetFedCmParametersResponse{} +func NewCreateFedcmFlowResponseWithDefaults() *CreateFedcmFlowResponse { + this := CreateFedcmFlowResponse{} return &this } // GetCsrfToken returns the CsrfToken field value if set, zero value otherwise. -func (o *GetFedCmParametersResponse) GetCsrfToken() string { +func (o *CreateFedcmFlowResponse) GetCsrfToken() string { if o == nil || o.CsrfToken == nil { var ret string return ret @@ -49,7 +49,7 @@ func (o *GetFedCmParametersResponse) GetCsrfToken() string { // GetCsrfTokenOk returns a tuple with the CsrfToken field value if set, nil otherwise // and a boolean to check if the value has been set. -func (o *GetFedCmParametersResponse) GetCsrfTokenOk() (*string, bool) { +func (o *CreateFedcmFlowResponse) GetCsrfTokenOk() (*string, bool) { if o == nil || o.CsrfToken == nil { return nil, false } @@ -57,7 +57,7 @@ func (o *GetFedCmParametersResponse) GetCsrfTokenOk() (*string, bool) { } // HasCsrfToken returns a boolean if a field has been set. -func (o *GetFedCmParametersResponse) HasCsrfToken() bool { +func (o *CreateFedcmFlowResponse) HasCsrfToken() bool { if o != nil && o.CsrfToken != nil { return true } @@ -66,12 +66,12 @@ func (o *GetFedCmParametersResponse) HasCsrfToken() bool { } // SetCsrfToken gets a reference to the given string and assigns it to the CsrfToken field. -func (o *GetFedCmParametersResponse) SetCsrfToken(v string) { +func (o *CreateFedcmFlowResponse) SetCsrfToken(v string) { o.CsrfToken = &v } // GetProviders returns the Providers field value if set, zero value otherwise. -func (o *GetFedCmParametersResponse) GetProviders() []Provider { +func (o *CreateFedcmFlowResponse) GetProviders() []Provider { if o == nil || o.Providers == nil { var ret []Provider return ret @@ -81,7 +81,7 @@ func (o *GetFedCmParametersResponse) GetProviders() []Provider { // GetProvidersOk returns a tuple with the Providers field value if set, nil otherwise // and a boolean to check if the value has been set. -func (o *GetFedCmParametersResponse) GetProvidersOk() ([]Provider, bool) { +func (o *CreateFedcmFlowResponse) GetProvidersOk() ([]Provider, bool) { if o == nil || o.Providers == nil { return nil, false } @@ -89,7 +89,7 @@ func (o *GetFedCmParametersResponse) GetProvidersOk() ([]Provider, bool) { } // HasProviders returns a boolean if a field has been set. -func (o *GetFedCmParametersResponse) HasProviders() bool { +func (o *CreateFedcmFlowResponse) HasProviders() bool { if o != nil && o.Providers != nil { return true } @@ -98,11 +98,11 @@ func (o *GetFedCmParametersResponse) HasProviders() bool { } // SetProviders gets a reference to the given []Provider and assigns it to the Providers field. -func (o *GetFedCmParametersResponse) SetProviders(v []Provider) { +func (o *CreateFedcmFlowResponse) SetProviders(v []Provider) { o.Providers = v } -func (o GetFedCmParametersResponse) MarshalJSON() ([]byte, error) { +func (o CreateFedcmFlowResponse) MarshalJSON() ([]byte, error) { toSerialize := map[string]interface{}{} if o.CsrfToken != nil { toSerialize["csrf_token"] = o.CsrfToken @@ -113,38 +113,38 @@ func (o GetFedCmParametersResponse) MarshalJSON() ([]byte, error) { return json.Marshal(toSerialize) } -type NullableGetFedCmParametersResponse struct { - value *GetFedCmParametersResponse +type NullableCreateFedcmFlowResponse struct { + value *CreateFedcmFlowResponse isSet bool } -func (v NullableGetFedCmParametersResponse) Get() *GetFedCmParametersResponse { +func (v NullableCreateFedcmFlowResponse) Get() *CreateFedcmFlowResponse { return v.value } -func (v *NullableGetFedCmParametersResponse) Set(val *GetFedCmParametersResponse) { +func (v *NullableCreateFedcmFlowResponse) Set(val *CreateFedcmFlowResponse) { v.value = val v.isSet = true } -func (v NullableGetFedCmParametersResponse) IsSet() bool { +func (v NullableCreateFedcmFlowResponse) IsSet() bool { return v.isSet } -func (v *NullableGetFedCmParametersResponse) Unset() { +func (v *NullableCreateFedcmFlowResponse) Unset() { v.value = nil v.isSet = false } -func NewNullableGetFedCmParametersResponse(val *GetFedCmParametersResponse) *NullableGetFedCmParametersResponse { - return &NullableGetFedCmParametersResponse{value: val, isSet: true} +func NewNullableCreateFedcmFlowResponse(val *CreateFedcmFlowResponse) *NullableCreateFedcmFlowResponse { + return &NullableCreateFedcmFlowResponse{value: val, isSet: true} } -func (v NullableGetFedCmParametersResponse) MarshalJSON() ([]byte, error) { +func (v NullableCreateFedcmFlowResponse) MarshalJSON() ([]byte, error) { return json.Marshal(v.value) } -func (v *NullableGetFedCmParametersResponse) UnmarshalJSON(src []byte) error { +func (v *NullableCreateFedcmFlowResponse) UnmarshalJSON(src []byte) error { v.isSet = true return json.Unmarshal(src, &v.value) } diff --git a/internal/httpclient/model_submit_fedcm_token_body.go b/internal/httpclient/model_update_fedcm_flow_body.go similarity index 63% rename from internal/httpclient/model_submit_fedcm_token_body.go rename to internal/httpclient/model_update_fedcm_flow_body.go index a8032c3a8cce..2d630d8ece53 100644 --- a/internal/httpclient/model_submit_fedcm_token_body.go +++ b/internal/httpclient/model_update_fedcm_flow_body.go @@ -15,8 +15,8 @@ import ( "encoding/json" ) -// SubmitFedcmTokenBody struct for SubmitFedcmTokenBody -type SubmitFedcmTokenBody struct { +// UpdateFedcmFlowBody struct for UpdateFedcmFlowBody +type UpdateFedcmFlowBody struct { // CSRFToken is the anti-CSRF token. CsrfToken string `json:"csrf_token"` // Nonce is the nonce that was used in the `navigator.credentials.get` call. If specified, it must match the `nonce` claim in the token. @@ -25,27 +25,27 @@ type SubmitFedcmTokenBody struct { Token string `json:"token"` } -// NewSubmitFedcmTokenBody instantiates a new SubmitFedcmTokenBody object +// NewUpdateFedcmFlowBody instantiates a new UpdateFedcmFlowBody object // This constructor will assign default values to properties that have it defined, // and makes sure properties required by API are set, but the set of arguments // will change when the set of required properties is changed -func NewSubmitFedcmTokenBody(csrfToken string, token string) *SubmitFedcmTokenBody { - this := SubmitFedcmTokenBody{} +func NewUpdateFedcmFlowBody(csrfToken string, token string) *UpdateFedcmFlowBody { + this := UpdateFedcmFlowBody{} this.CsrfToken = csrfToken this.Token = token return &this } -// NewSubmitFedcmTokenBodyWithDefaults instantiates a new SubmitFedcmTokenBody object +// NewUpdateFedcmFlowBodyWithDefaults instantiates a new UpdateFedcmFlowBody object // This constructor will only assign default values to properties that have it defined, // but it doesn't guarantee that properties required by API are set -func NewSubmitFedcmTokenBodyWithDefaults() *SubmitFedcmTokenBody { - this := SubmitFedcmTokenBody{} +func NewUpdateFedcmFlowBodyWithDefaults() *UpdateFedcmFlowBody { + this := UpdateFedcmFlowBody{} return &this } // GetCsrfToken returns the CsrfToken field value -func (o *SubmitFedcmTokenBody) GetCsrfToken() string { +func (o *UpdateFedcmFlowBody) GetCsrfToken() string { if o == nil { var ret string return ret @@ -56,7 +56,7 @@ func (o *SubmitFedcmTokenBody) GetCsrfToken() string { // GetCsrfTokenOk returns a tuple with the CsrfToken field value // and a boolean to check if the value has been set. -func (o *SubmitFedcmTokenBody) GetCsrfTokenOk() (*string, bool) { +func (o *UpdateFedcmFlowBody) GetCsrfTokenOk() (*string, bool) { if o == nil { return nil, false } @@ -64,12 +64,12 @@ func (o *SubmitFedcmTokenBody) GetCsrfTokenOk() (*string, bool) { } // SetCsrfToken sets field value -func (o *SubmitFedcmTokenBody) SetCsrfToken(v string) { +func (o *UpdateFedcmFlowBody) SetCsrfToken(v string) { o.CsrfToken = v } // GetNonce returns the Nonce field value if set, zero value otherwise. -func (o *SubmitFedcmTokenBody) GetNonce() string { +func (o *UpdateFedcmFlowBody) GetNonce() string { if o == nil || o.Nonce == nil { var ret string return ret @@ -79,7 +79,7 @@ func (o *SubmitFedcmTokenBody) GetNonce() string { // GetNonceOk returns a tuple with the Nonce field value if set, nil otherwise // and a boolean to check if the value has been set. -func (o *SubmitFedcmTokenBody) GetNonceOk() (*string, bool) { +func (o *UpdateFedcmFlowBody) GetNonceOk() (*string, bool) { if o == nil || o.Nonce == nil { return nil, false } @@ -87,7 +87,7 @@ func (o *SubmitFedcmTokenBody) GetNonceOk() (*string, bool) { } // HasNonce returns a boolean if a field has been set. -func (o *SubmitFedcmTokenBody) HasNonce() bool { +func (o *UpdateFedcmFlowBody) HasNonce() bool { if o != nil && o.Nonce != nil { return true } @@ -96,12 +96,12 @@ func (o *SubmitFedcmTokenBody) HasNonce() bool { } // SetNonce gets a reference to the given string and assigns it to the Nonce field. -func (o *SubmitFedcmTokenBody) SetNonce(v string) { +func (o *UpdateFedcmFlowBody) SetNonce(v string) { o.Nonce = &v } // GetToken returns the Token field value -func (o *SubmitFedcmTokenBody) GetToken() string { +func (o *UpdateFedcmFlowBody) GetToken() string { if o == nil { var ret string return ret @@ -112,7 +112,7 @@ func (o *SubmitFedcmTokenBody) GetToken() string { // GetTokenOk returns a tuple with the Token field value // and a boolean to check if the value has been set. -func (o *SubmitFedcmTokenBody) GetTokenOk() (*string, bool) { +func (o *UpdateFedcmFlowBody) GetTokenOk() (*string, bool) { if o == nil { return nil, false } @@ -120,11 +120,11 @@ func (o *SubmitFedcmTokenBody) GetTokenOk() (*string, bool) { } // SetToken sets field value -func (o *SubmitFedcmTokenBody) SetToken(v string) { +func (o *UpdateFedcmFlowBody) SetToken(v string) { o.Token = v } -func (o SubmitFedcmTokenBody) MarshalJSON() ([]byte, error) { +func (o UpdateFedcmFlowBody) MarshalJSON() ([]byte, error) { toSerialize := map[string]interface{}{} if true { toSerialize["csrf_token"] = o.CsrfToken @@ -138,38 +138,38 @@ func (o SubmitFedcmTokenBody) MarshalJSON() ([]byte, error) { return json.Marshal(toSerialize) } -type NullableSubmitFedcmTokenBody struct { - value *SubmitFedcmTokenBody +type NullableUpdateFedcmFlowBody struct { + value *UpdateFedcmFlowBody isSet bool } -func (v NullableSubmitFedcmTokenBody) Get() *SubmitFedcmTokenBody { +func (v NullableUpdateFedcmFlowBody) Get() *UpdateFedcmFlowBody { return v.value } -func (v *NullableSubmitFedcmTokenBody) Set(val *SubmitFedcmTokenBody) { +func (v *NullableUpdateFedcmFlowBody) Set(val *UpdateFedcmFlowBody) { v.value = val v.isSet = true } -func (v NullableSubmitFedcmTokenBody) IsSet() bool { +func (v NullableUpdateFedcmFlowBody) IsSet() bool { return v.isSet } -func (v *NullableSubmitFedcmTokenBody) Unset() { +func (v *NullableUpdateFedcmFlowBody) Unset() { v.value = nil v.isSet = false } -func NewNullableSubmitFedcmTokenBody(val *SubmitFedcmTokenBody) *NullableSubmitFedcmTokenBody { - return &NullableSubmitFedcmTokenBody{value: val, isSet: true} +func NewNullableUpdateFedcmFlowBody(val *UpdateFedcmFlowBody) *NullableUpdateFedcmFlowBody { + return &NullableUpdateFedcmFlowBody{value: val, isSet: true} } -func (v NullableSubmitFedcmTokenBody) MarshalJSON() ([]byte, error) { +func (v NullableUpdateFedcmFlowBody) MarshalJSON() ([]byte, error) { return json.Marshal(v.value) } -func (v *NullableSubmitFedcmTokenBody) UnmarshalJSON(src []byte) error { +func (v *NullableUpdateFedcmFlowBody) UnmarshalJSON(src []byte) error { v.isSet = true return json.Unmarshal(src, &v.value) } diff --git a/selfservice/strategy/oidc/fedcm/definitions.go b/selfservice/strategy/oidc/fedcm/definitions.go index 2e14c03ed174..c8665b3e614d 100644 --- a/selfservice/strategy/oidc/fedcm/definitions.go +++ b/selfservice/strategy/oidc/fedcm/definitions.go @@ -40,17 +40,17 @@ type Provider struct { Parameters map[string]string `json:"parameters,omitempty"` } -// GetParametersResponse +// CreateFedcmFlowResponse // // Contains a list of all available FedCM providers. // -// swagger:model getFedCmParametersResponse -type GetParametersResponse struct { +// swagger:model createFedcmFlowResponse +type CreateFedcmFlowResponse struct { Providers []Provider `json:"providers"` CSRFToken string `json:"csrf_token"` } -// swagger:route GET /self-service/fed-cm/parameters frontend getFedcmParameters +// swagger:route GET /self-service/fed-cm/parameters frontend createFedcmFlow // // # Get FedCM Parameters // @@ -65,11 +65,11 @@ type GetParametersResponse struct { // Schemes: http, https // // Responses: -// 200: getFedCmParametersResponse +// 200: createFedcmFlowResponse // 400: errorGeneric // default: errorGeneric -type SubmitFedcmTokenBody struct { +type UpdateFedcmFlowBody struct { // Token contains the result of `navigator.credentials.get`. // // required: true @@ -87,17 +87,17 @@ type SubmitFedcmTokenBody struct { CSRFToken string `json:"csrf_token"` } -// swagger:parameters submitFedcmToken +// swagger:parameters updateFedcmFlow // //nolint:deadcode,unused //lint:ignore U1000 Used to generate Swagger and OpenAPI definitions -type submitFedcmToken struct { +type updateFedcmFlow struct { // in: body // required: true - Body SubmitFedcmTokenBody + Body UpdateFedcmFlowBody } -// swagger:route POST /self-service/fed-cm/token frontend submitFedcmToken +// swagger:route POST /self-service/fed-cm/token frontend updateFedcmFlow // // # Submit a FedCM token // diff --git a/spec/api.json b/spec/api.json index f3d10ce2e570..84cf2d9ed6ab 100644 --- a/spec/api.json +++ b/spec/api.json @@ -456,7 +456,15 @@ "title": "RecoveryAddressType must not exceed 16 characters as that is the limitation in the SQL Schema.", "type": "string" }, - "SubmitFedcmTokenBody": { + "Time": { + "format": "date-time", + "type": "string" + }, + "UUID": { + "format": "uuid4", + "type": "string" + }, + "UpdateFedcmFlowBody": { "properties": { "csrf_token": { "description": "CSRFToken is the anti-CSRF token.", @@ -477,14 +485,6 @@ ], "type": "object" }, - "Time": { - "format": "date-time", - "type": "string" - }, - "UUID": { - "format": "uuid4", - "type": "string" - }, "authenticatorAssuranceLevel": { "description": "The authenticator assurance level can be one of \"aal1\", \"aal2\", or \"aal3\". A higher number means that it is harder\nfor an attacker to compromise the account.\n\nGenerally, \"aal1\" implies that one authentication factor was used while AAL2 implies that two factors (e.g.\npassword + TOTP) have been used.\n\nTo learn more about these levels please head over to: https://www.ory.sh/kratos/docs/concepts/credentials", "enum": [ @@ -736,6 +736,22 @@ "title": "A Message's Type", "type": "string" }, + "createFedcmFlowResponse": { + "description": "Contains a list of all available FedCM providers.", + "properties": { + "csrf_token": { + "type": "string" + }, + "providers": { + "items": { + "$ref": "#/components/schemas/Provider" + }, + "type": "array" + } + }, + "title": "CreateFedcmFlowResponse", + "type": "object" + }, "createIdentityBody": { "description": "Create Identity Body", "properties": { @@ -965,22 +981,6 @@ ], "type": "object" }, - "getFedCmParametersResponse": { - "description": "Contains a list of all available FedCM providers.", - "properties": { - "csrf_token": { - "type": "string" - }, - "providers": { - "items": { - "$ref": "#/components/schemas/Provider" - }, - "type": "array" - } - }, - "title": "GetParametersResponse", - "type": "object" - }, "healthNotReadyStatus": { "properties": { "errors": { @@ -5564,17 +5564,17 @@ "/self-service/fed-cm/parameters": { "get": { "description": "This endpoint returns a list of all available FedCM providers. It is only supported on the Ory Network.", - "operationId": "getFedcmParameters", + "operationId": "createFedcmFlow", "responses": { "200": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/getFedCmParametersResponse" + "$ref": "#/components/schemas/createFedcmFlowResponse" } } }, - "description": "getFedCmParametersResponse" + "description": "createFedcmFlowResponse" }, "400": { "content": { @@ -5606,17 +5606,17 @@ "/self-service/fed-cm/token": { "post": { "description": "Use this endpoint to submit a token from a FedCM provider through\n`navigator.credentials.get` and log the user in. The parameters from\n`navigator.credentials.get` must have come from `GET\nself-service/fed-cm/parameters`.", - "operationId": "submitFedcmToken", + "operationId": "updateFedcmFlow", "requestBody": { "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SubmitFedcmTokenBody" + "$ref": "#/components/schemas/UpdateFedcmFlowBody" } }, "application/x-www-form-urlencoded": { "schema": { - "$ref": "#/components/schemas/SubmitFedcmTokenBody" + "$ref": "#/components/schemas/UpdateFedcmFlowBody" } } }, diff --git a/spec/swagger.json b/spec/swagger.json index 97b6de6c018b..dbed6c5be265 100755 --- a/spec/swagger.json +++ b/spec/swagger.json @@ -1494,12 +1494,12 @@ "frontend" ], "summary": "Get FedCM Parameters", - "operationId": "getFedcmParameters", + "operationId": "createFedcmFlow", "responses": { "200": { - "description": "getFedCmParametersResponse", + "description": "createFedcmFlowResponse", "schema": { - "$ref": "#/definitions/getFedCmParametersResponse" + "$ref": "#/definitions/createFedcmFlowResponse" } }, "400": { @@ -1535,14 +1535,14 @@ "frontend" ], "summary": "Submit a FedCM token", - "operationId": "submitFedcmToken", + "operationId": "updateFedcmFlow", "parameters": [ { "name": "Body", "in": "body", "required": true, "schema": { - "$ref": "#/definitions/SubmitFedcmTokenBody" + "$ref": "#/definitions/UpdateFedcmFlowBody" } } ], @@ -3759,7 +3759,8 @@ "type": "string", "title": "RecoveryAddressType must not exceed 16 characters as that is the limitation in the SQL Schema." }, - "SubmitFedcmTokenBody": { + "UUID": {"type": "string", "format": "uuid4"}, + "UpdateFedcmFlowBody": { "type": "object", "required": [ "token", @@ -3780,7 +3781,6 @@ } } }, - "UUID": {"type": "string", "format": "uuid4"}, "authenticatorAssuranceLevel": { "description": "The authenticator assurance level can be one of \"aal1\", \"aal2\", or \"aal3\". A higher number means that it is harder\nfor an attacker to compromise the account.\n\nGenerally, \"aal1\" implies that one authentication factor was used while AAL2 implies that two factors (e.g.\npassword + TOTP) have been used.\n\nTo learn more about these levels please head over to: https://www.ory.sh/kratos/docs/concepts/credentials", "type": "string", @@ -3991,6 +3991,22 @@ "format": "int64", "title": "A Message's Type" }, + "createFedcmFlowResponse": { + "description": "Contains a list of all available FedCM providers.", + "type": "object", + "title": "CreateFedcmFlowResponse", + "properties": { + "csrf_token": { + "type": "string" + }, + "providers": { + "type": "array", + "items": { + "$ref": "#/definitions/Provider" + } + } + } + }, "createIdentityBody": { "description": "Create Identity Body", "type": "object", @@ -4223,22 +4239,6 @@ } } }, - "getFedCmParametersResponse": { - "description": "Contains a list of all available FedCM providers.", - "type": "object", - "title": "GetParametersResponse", - "properties": { - "csrf_token": { - "type": "string" - }, - "providers": { - "type": "array", - "items": { - "$ref": "#/definitions/Provider" - } - } - } - }, "healthNotReadyStatus": { "type": "object", "title": "The not ready status of the service.",