<@U04UQ68083H> what is the hosted offering of Ory ...
# ory-copilot
w
@chilly-king-10285 what is the hosted offering of Ory Oathkeepter
c
A message from kapa.ai
🙌 1
The hosted offering of Ory is called the Ory Network. It is built on top of Ory Open Source software, including Ory Oathkeeper. The goal of the Ory Network is to offer a planet-scale, low-latency, resilient, and secure service that's easy to use and set up. In short, Ory Network is the most convenient way to run Ory, including Ory Oathkeeper. You can sign up and create a free developer project on the Ory Network [here](https://console.ory.sh/registration). For more information, you can refer to the [Ory documentation](https://www.ory.sh/docs/welcome#ory-network).
w
How can I create user with default password in ory network and require them to change it once they logged in?
@chilly-king-10285 How can I create user with default password in ory network and require them to change it once they logged in?
c
A message from kapa.ai
To create a user with a default password in Ory, you can use the import credentials feature. This allows you to import a clear text password for a user. Here is an example of how to do this:
Copy code
json {     "schema_id": "<preset://email>",     "traits": {       "email": "[[email protected]](<https://www.ory.sh/cdn-cgi/l/email-protection>)"     },     "credentials": {       "password": {         "config": {           "password": "the-password"         }       }     }   }
The password
the-password
will then be hashed according to the configured password hashing algorithm and stored in the database. The identity will be able to sign in using
[[email protected]](<https://www.ory.sh/cdn-cgi/l/email-protection>)
and
the-password
as credentials. You can find more details about this in the [Ory documentation](https://www.ory.sh/docs/kratos/manage-identities/import-user-accounts-identities#importing-credentials). To require users to change their password once they log in, you can use the self-service flows feature of Ory. This allows you to define a flow where users are required to update their password after logging in. You can find more details about this in the [Ory documentation](https://www.ory.sh/docs/kratos/self-service/flows/user-settings#updating-privileged-fields). Please note that these operations require writing custom code that relies on the specifics of your implementation.
w
@chilly-king-10285 how can I express it in my go sdk body struct: CreateIdentityBody := *ory.NewCreateIdentityBody( "preset://email", map[string]interface{}{ "email": email, }, )
c
A message from kapa.ai
To create an identity with a default password using the Go SDK, you would need to include the password in the
credentials
field of the
CreateIdentityBody
. However, the provided knowledge sources do not include an example of how to do this with the Go SDK. The
CreateIdentityBody
function in the Go SDK only accepts two parameters:
schemaId
and
traits
. It does not accept a
credentials
parameter, which is needed to set a password. Here is the current usage of `CreateIdentityBody`:
Copy code
go CreateIdentityBody := *ory.NewCreateIdentityBody(     "<preset://email>",     map[string]interface{}{         "email": email,     }, )
Unfortunately, without the appropriate knowledge sources, I can't provide a confident answer on how to include the password in the
CreateIdentityBody
using the Go SDK. I recommend checking the [Ory Kratos Go SDK documentation](https://www.ory.sh/kratos/docs/reference/sdk/golang/) for more information.
w
@chilly-king-10285 I want to add:
Copy code
"credentials": {  
    "password": {  
      "config": {  
        "password": "the-password"  
      }  
    }  
  }
to my go struct:
Copy code
CreateIdentityBody := *ory.NewCreateIdentityBody(
    "<preset://email>",
    map[string]interface{}{
        "email": email,
    },
)
c
A message from kapa.ai
The Go SDK for Ory Kratos does not directly support adding credentials in the
CreateIdentityBody
function. The function only accepts
schemaId
and
traits
as parameters. Here is the current usage:
Copy code
go CreateIdentityBody := *ory.NewCreateIdentityBody(     "<preset://email>",     map[string]interface{}{         "email": email,     }, )
However, you can create a custom struct that includes the
credentials
field. Here's an example of how you might do this:
Copy code
go type CustomIdentityBody struct {     SchemaId string                 `json:"schema_id"`     Traits   map[string]interface{} `json:"traits"`     Credentials map[string]map[string]map[string]string `json:"credentials"` }  CreateIdentityBody := CustomIdentityBody{     SchemaId: "<preset://email>",     Traits: map[string]interface{}{         "email": email,     },     Credentials: map[string]map[string]map[string]string{         "password": {             "config": {                 "password": "the-password",             },         },     }, }
Please note that this is a hypothetical example and may not work as expected without further adjustments. Always refer to the official [Ory Kratos Go SDK documentation](https://www.ory.sh/kratos/docs/reference/sdk/golang/) for the most accurate information.
w
@chilly-king-10285 how can I add configuration for default password to my code:
Copy code
ctx := context.Background()
	CreateIdentityBody := *ory.NewCreateIdentityBody(
		"<preset://email>",
		map[string]interface{}{
			"email": email,
		},
	)
	_, r, err := k.client.IdentityAPI.CreateIdentity(ctx).CreateIdentityBody(CreateIdentityBody).Execute()
	if r.StatusCode == 409 {
c
A message from kapa.ai
The Go SDK for Ory Kratos does not directly support adding credentials in the
CreateIdentityBody
function. The function only accepts
schemaId
and
traits
as parameters. Here is the current usage:
Copy code
go CreateIdentityBody := *ory.NewCreateIdentityBody(     "<preset://email>",     map[string]interface{}{         "email": email,     }, )
However, you can create a custom struct that includes the
credentials
field. Here's an example of how you might do this:
Copy code
go type CustomIdentityBody struct {     SchemaId string                 `json:"schema_id"`     Traits   map[string]interface{} `json:"traits"`     Credentials map[string]map[string]map[string]string `json:"credentials"` }  CreateIdentityBody := CustomIdentityBody{     SchemaId: "<preset://email>",     Traits: map[string]interface{}{         "email": email,     },     Credentials: map[string]map[string]map[string]string{         "password": {             "config": {                 "password": "the-password",             },         },     }, }  _, r, err := k.client.IdentityAPI.CreateIdentity(ctx).CreateIdentityBody(CreateIdentityBody).Execute() if r.StatusCode == 409 {
Please note that this is a hypothetical example and may not work as expected without further adjustments. Always refer to the official [Ory Kratos Go SDK documentation](https://www.ory.sh/kratos/docs/reference/sdk/golang/) for the most accurate information.
w
@chilly-king-10285 how can I create identity with default password using go dsk
c
A message from kapa.ai
The Go SDK for Ory Kratos does not directly support adding credentials in the
CreateIdentityBody
function. The function only accepts
schemaId
and
traits
as parameters. Here is the current usage:
Copy code
go CreateIdentityBody := *ory.NewCreateIdentityBody(     "<preset://email>",     map[string]interface{}{{         "email": email,     }}, )
However, you can create a custom struct that includes the
credentials
field. Here's an example of how you might do this:
Copy code
go type CustomIdentityBody struct {     SchemaId string                 `json:"schema_id"`     Traits   map[string]interface{} `json:"traits"`     Credentials map[string]map[string]map[string]string `json:"credentials"` }  CreateIdentityBody := CustomIdentityBody{     SchemaId: "<preset://email>",     Traits: map[string]interface{}{         "email": email,     },     Credentials: map[string]map[string]map[string]string{         "password": {             "config": {                 "password": "the-password",             },         },     }, }  _, r, err := k.client.IdentityAPI.CreateIdentity(ctx).CreateIdentityBody(CreateIdentityBody).Execute() if r.StatusCode == 409 {
Please note that this is a hypothetical example and may not work as expected without further adjustments. Always refer to the official [Ory Kratos Go SDK documentation](https://www.ory.sh/kratos/docs/reference/sdk/golang/) for the most accurate information.
w
@chilly-king-10285 how can I patch identity with default password using go dsk?
c
A message from kapa.ai
To patch an identity using the Go SDK, you can use the
PatchIdentity
function. However, the provided knowledge sources do not include an example of how to patch an identity's password with the Go SDK. Here is an example of how to patch an identity's state:
Copy code
go func setState(identityId string, state string) (err error) {    _, _, err = ory.IdentityApi.     PatchIdentity(authed, identityId).     JsonPatch([]client.JsonPatch{{Op: "replace", Path: "/state", Value: state}}).Execute()    return err   }
In this example, the
PatchIdentity
function is used to change the state of an identity. The
JsonPatch
function is used to specify the operation (
replace
), the path (
/state
), and the new value. To patch an identity's password, you would likely need to replace
Path: "/state"
with the appropriate path for the password. However, without the appropriate knowledge sources, I can't provide a confident answer on what this path would be. I recommend checking the [Ory Kratos Go SDK documentation](https://www.ory.sh/kratos/docs/reference/sdk/golang/) for more information.
w
how can I patch identity default password with the API ?
@chilly-king-10285 how can I patch identity default password with the API ?
c
A message from kapa.ai
To patch an identity using the Ory API, you can use the
PATCH /admin/identities/{id}
endpoint. However, the provided knowledge sources specify that the fields
id
,
stateChangedAt
and
credentials
cannot be updated using this method. This means that you cannot directly patch an identity's password using this API endpoint. Here is the example of how to use this endpoint:
Copy code
json {   'content': {     'application/json': {       'schema': {         'description': 'A JSONPatchDocument request',          'items': {           'description': 'A JSONPatch document as defined by RFC 6902',            'properties': {             'from': {               'description': 'This field is used together with operation "move" and uses JSON Pointer notation.',                'example': '/name',                'type': 'string'             },              'op': {               'description': 'The operation to be performed. One of "add", "remove", "replace", "move", "copy", or "test".',                'enum': ['add', 'remove', 'replace', 'move', 'copy', 'test'],                'example': 'replace',                'type': 'string'             },              'path': {               'description': 'The path to the target path. Uses JSON pointer notation.',                'example': '/name',                'type': 'string'             },              'value': {               'description': 'The value to be used within the operations.',                'example': 'foobar'             }           },            'required': ['op', 'path'],            'type': 'object'         },          'type': 'array'       }     }   },    'x-originalParamName': 'Body' }
For more information, please refer to the [Ory API documentation](https://www.ory.sh/docs/reference/api#patch-an-identity).
w
@chilly-king-10285 can I get a web hook in ory network on the very first user login?
c
A message from kapa.ai
Yes, you can configure a webhook to be triggered on the first user login using Ory Actions. Ory supports the following action triggers: -
before
login: The hook runs when the user starts the login flow. -
after
login: The hook runs when the user is successfully authenticated, before the system issues an Ory Session. You can use the
after
login trigger to set up a webhook that runs when the user is successfully authenticated. This can be used to automate behavior in response to users logging in to your application. For example, you can use Ory Actions to update user information in your database or send welcome emails to users that log in for the first time. Here is an example of how you might configure this:
Copy code
json {   "hook": "web_hook",   "config": {     "url": "<https://your-webhook-url.com>",     "method": "POST",     "body": "{...}"   } }
In this example, replace
<https://your-webhook-url.com>
with the URL of your webhook, and
{...}
with the body of the request you want to send. For more information, please refer to the [Ory documentation](https://www.ory.sh/docs/kratos/hooks/configure-hooks#action-triggers).
w
@chilly-king-10285 what are Ory actions and how can I use them?
c
A message from kapa.ai
Ory Actions are an extensibility mechanism provided by the Ory Network that allows you to integrate with third-party services and automate the behavior of the system in response to events that occur in your Ory-powered applications. You can write Actions in any programming language and trigger them through events such as user registration, or users resetting their passwords. Ory Actions can be used to integrate with various services such as: - CRM platforms, such as Mailchimp or HubSpot - Payment gateways, such as Stripe - Business analytics tools, such as Google Analytics, Mixpanel, or Segment - Integration platforms, such as Zapier or IFTT Ory Actions are supported by two of the Ory services: - Ory Identities: Execute actions in response to user-related events such as login, registration, account recovery, account verification, or user settings update. - Ory OAuth2 and OpenID Connect: Execute actions in response to refreshing OAuth 2.0 Access Tokens. To use Ory Actions, you need to define custom business logic and set up triggers for the events you want to respond to. For example, you can set up an action to be triggered before events such as user login, registration, triggering account recovery or verification, and updating account settings. This gives you a high degree of control over the flow of events in your application and can improve the overall security and user experience. For more information on how to configure hooks and actions, you can refer to the [Ory documentation](https://www.ory.sh/docs/kratos/hooks/configure-hooks).
w
@chilly-king-10285 why do I get this error:
Copy code
{
  "error": {
    "code": 400,
    "status": "Bad Request",
    "request": "627c5e7b-6fa2-967d-84c4-77c0ab7da504",
    "reason": "Unable to decode JSON payload: uuid: incorrect UUID length 35 in string \"c840b2b-afba-41e8-88c5-85a4de7d69bf\"",
    "message": "The request was malformed or contained invalid parameters"
  }
}
For my request:
Copy code
curl --location 'https://?.<http://projects.oryapis.com/admin/recovery/link?return_to=%3Cstring%3E&identity_id=c840b2b-afba-41e8-88c5-85a4de7d69bf|projects.oryapis.com/admin/recovery/link?return_to=%3Cstring%3E&identity_id=c840b2b-afba-41e8-88c5-85a4de7d69bf>' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer ?' \
--data '{
  "identity_id": "c840b2b-afba-41e8-88c5-85a4de7d69bf",
  "expires_in": "15m"
}'
c
A message from kapa.ai
The error message indicates that the UUID you provided is not of the correct length. A UUID should be 36 characters long, including hyphens, but the one you provided is only 35 characters long. The UUID you provided is:
c840b2b-afba-41e8-88c5-85a4de7d69bf
It seems like there is a missing character in the first segment of the UUID. A correct UUID should look like this:
cc840b2b-afba-41e8-88c5-85a4de7d69bf
(note the extra 'c' at the beginning). Please correct the UUID in your request and try again.
w
@chilly-king-10285 thanks that was it!
c
A message from kapa.ai
You're welcome! I'm glad I could help. If you have any more questions or run into any other issues, feel free to ask. Happy coding!
w
@chilly-king-10285 why do I get this error when I navigate to the invite link?
Copy code
{
  "id": "173b8af6-ce87-4a2b-9491-8d1a1ebcf4d2",
  "error": {
    "code": 400,
    "message": "The request was malformed or contained invalid parameters",
    "reason": "The flow query parameter is missing or malformed.",
    "status": "Bad Request"
  },
  "created_at": "2024-07-01T15:51:23.287144Z",
  "updated_at": "2024-07-01T15:51:23.287144Z"
}
c
A message from kapa.ai
The error message indicates that the
flow
query parameter in your request URL is either missing or malformed. When you navigate to the invite link, it should include a
flow
query parameter. This parameter is used to identify the specific flow instance that the user is in. If it's missing or not correctly formatted, you'll see this error. The invite link should look something like this:
Copy code
https://{project-slug}.<http://projects.oryapis.com/self-service/recovery?flow=b6c81504-dc8e-4786-b849-ac292bc9f317&token=VjKUKGU7J4YAonC5b5q1hDySJjWGh3qf|projects.oryapis.com/self-service/recovery?flow=b6c81504-dc8e-4786-b849-ac292bc9f317&token=VjKUKGU7J4YAonC5b5q1hDySJjWGh3qf>
In this example,
flow=b6c81504-dc8e-4786-b849-ac292bc9f317
is the
flow
query parameter. Please check your invite link to ensure it includes a properly formatted
flow
query parameter. If you're generating this link programmatically, you may need to check your code to ensure it's correctly including this parameter.
w
@chilly-king-10285 can you send me documenation about the auth flow that can be used for account recovery?
c
A message from kapa.ai
Sure, you can find detailed information about the account recovery flow in the Ory documentation. The [Account Recovery and Password Reset](https://www.ory.sh/docs/kratos/self-service/flows/account-recovery-password-reset) section provides an overview of how account recovery works in Ory. It explains how users can regain access to their account if they forget their password or lose access to the second authentication factor required for multi-factor authentication (MFA). The [Administrative Account Recovery](https://www.ory.sh/docs/kratos/manage-identities/account-recovery) section explains how you can initiate account recovery for users using the admin API endpoints. The [Ory Identities API](https://www.ory.sh/docs/kratos/reference/api) section provides detailed information about the API endpoints related to account recovery, such as
getRecoveryFlow
and
createNativeRecoveryFlow
. The [Integration Basics](https://www.ory.sh/docs/kratos/bring-your-own-ui/custom-ui-basic-integration#recovery) section provides information on how to integrate the recovery flow into your own user interface. The [Quickstart](https://www.ory.sh/docs/kratos/quickstart#account-recovery) section provides a practical example of how to enable account recovery in a quickstart project. Finally, the [Configuration](https://www.ory.sh/docs/kratos/self-service/flows/account-recovery-password-reset#configuration) section provides information on how to enable account recovery and adjust related options in the Ory Console or Ory CLI.
w
@chilly-king-10285 how can I set the flow argument in my go code that generates the recovery link?
Copy code
func (k *OryServiceImpl) CreateRecoveryLink(identity string, expiresIn string) (*ory.RecoveryLinkForIdentity, error) {
	fmt.Printf("Creating recovery link for identity: [%s]\n", identity)
	// returnTo := "returnTo_example" // string |  (optional)
	body := *ory.NewCreateRecoveryLinkForIdentityBody(identity)
	body.SetExpiresIn(expiresIn)
	resp, r, err := k.client.IdentityAPI.CreateRecoveryLinkForIdentity(context.Background()).CreateRecoveryLinkForIdentityBody(body).Execute()
	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `IdentityAPI.CreateRecoveryLinkForIdentity``: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
		return nil, err
	}
	return resp, nil
}
c
A message from kapa.ai
The
CreateRecoveryLinkForIdentity
function in your code is used to create a recovery link for a specific identity. However, this function does not accept a
flow
argument. The
flow
is a unique identifier generated by Ory Kratos when a recovery flow is initiated, and it's not something you set manually. The recovery link generated by
CreateRecoveryLinkForIdentity
will include a
token
query parameter, which is used to identify the recovery flow when the user navigates to the link. The user will be directed to the recovery flow UI, where they can complete the recovery process. Here is how you use the
CreateRecoveryLinkForIdentity
function:
Copy code
go func (k *OryServiceImpl) CreateRecoveryLink(identity string, expiresIn string) (*client.RecoveryLink, error) {  body := &client.CreateRecoveryLinkForIdentityBody{   IdentityId: identity,   ExpiresIn:  expiresIn,  }  resp, _, err := k.client.AdminApi.CreateRecoveryLinkForIdentity(context.Background()).CreateRecoveryLinkForIdentityBody(*body).Execute()  if err != nil {   fmt.Fprintf(os.Stderr, "Error when calling `AdminApi.CreateRecoveryLinkForIdentity``: %v\n", err)   return nil, err  }  return resp, nil }
In this example, replace
identity
with the ID of the identity for which you want to create a recovery link, and
expiresIn
with the duration after which the link should expire. For more information, please refer to the [Ory Kratos Go SDK documentation](https://www.ory.sh/kratos/docs/reference/sdk/golang/).
w
@chilly-king-10285 what should I set in my console to enable recovery flows?
c
A message from kapa.ai
To enable account recovery and adjust related options in the Ory Console, follow these steps: 1. Go to Authentication → Account recovery in the [Ory Console](https://console.ory.sh/projects/current/recovery) Additionally, you can configure more specific settings for the recovery flow. For example: - To enable sending attempted recovery notifications, go to Authentication → Account recovery in the Ory Console and toggle Notify unknown recipients on. - To require multi-factor authentication for account recovery, go to Authentication → Two-factor auth in the Ory Console. For more detailed information, please refer to the [Ory documentation](https://www.ory.sh/docs/kratos/self-service/flows/account-recovery-password-reset#configuration).
w
@chilly-king-10285 this is the general error: An error occurred with the following message: The flow query parameter is missing or malformed.
c
A message from kapa.ai
The error message "The flow query parameter is missing or malformed" typically occurs when you're trying to access a self-service flow endpoint (like login, registration, recovery, etc.) but the
flow
query parameter in the URL is either missing or not correctly formatted. The
flow
query parameter is a UUID that Ory Kratos generates when a self-service flow starts. It's used to identify the specific flow instance that the user is in. A typical URL with a
flow
parameter looks like this:
Copy code
<https://your-kratos-server/self-service/login/browser?flow=0229c80a-a610-4a23-a0a4-5f1b2c33f573>
In this example,
0229c80a-a610-4a23-a0a4-5f1b2c33f573
is the
flow
parameter. If you're seeing this error, you should check the URL you're using to make sure it includes a
flow
parameter and that the parameter is a valid UUID. If you're generating this URL programmatically, you may need to check your code to ensure it's correctly including the
flow
parameter. If you're manually constructing the URL, make sure you include a valid
flow
parameter. For more information, please refer to the [Ory Kratos documentation](https://www.ory.sh/docs/kratos/).
w
@chilly-king-10285 this is my url:
Copy code
https://?-?-?.<http://projects.oryapis.com/self-service/recovery?flow=8973625e-6033-4bb8-9d5e-3d1217b394e5\u0026token=1IIiX21LsYj6Ni8Y6i1mOpIlP5RHbTEA|projects.oryapis.com/self-service/recovery?flow=8973625e-6033-4bb8-9d5e-3d1217b394e5\u0026token=1IIiX21LsYj6Ni8Y6i1mOpIlP5RHbTEA>
c
A message from kapa.ai
The URL you provided seems to be malformed. It contains some placeholders (
?-?-?.<<http://projects.oryapis.com>
) and escape sequences (
\u0026
instead of
&
). A correct recovery URL should look something like this:
Copy code
<https://your-kratos-server.com/self-service/recovery?flow=8973625e-6033-4bb8-9d5e-3d1217b394e5&token=1IIiX21LsYj6Ni8Y6i1mOpIlP5RHbTEA>
In this example, replace
<http://your-kratos-server.com|your-kratos-server.com>
with the actual domain of your Ory Kratos server. The
flow
and
token
parameters should be the ones you received when you created the recovery link. Please correct your URL and try again. If you're generating this URL programmatically, you may need to check your code to ensure it's correctly constructing the URL.
w
@chilly-king-10285 can I create recovery links only for password recovery and no other functionality presented to the user?
c
A message from kapa.ai
Yes, you can create recovery links that only allow the user to recover their password. When a user accesses the recovery link, they will be directed to a page where they can set up a new password. Here is an example of how you can create a recovery link using the Ory Kratos API:
Copy code
bash curl --request POST -sL \      --header "Authorization: Bearer {ORY_API_KEY}" \      --header "Content-Type: application/json" \      --data '{      "expires_in": "12h",      "identity_id": "$ACCOUNT_ID"      }' https://$<http://PROJECT_SLUG.projects.oryapis.com/admin/recovery/link|PROJECT_SLUG.projects.oryapis.com/admin/recovery/link>
And here is an example of how you can do it using the Go SDK:
Copy code
go package main      import (       "context"       "fmt"       "io"          ory "<http://github.com/ory/client-go|github.com/ory/client-go>"   )      func main() {       client := ory.NewAPIClient(&ory.Configuration{           Servers: ory.ServerConfigurations{{               URL: "https://$<http://PROJECT_SLUG.projects.oryapis.com|PROJECT_SLUG.projects.oryapis.com>",           }},           DefaultHeader: map[string]string{               "Authorization": "Bearer ORY_API_KEY", // API Key for your Ory Network project           },       })          link, res, err := client.FrontendApi.AdminCreateSelfServiceRecoveryLink(context.Background()).           AdminCreateSelfServiceRecoveryLinkBody(*ory.NewAdminCreateSelfServiceRecoveryLinkBody("YOUR_INDENTITY_ID")).           Execute()          if err != nil {           body, _ := io.ReadAll(res.Body)           fmt.Printf("could not create recovery link %v: %v", err.Error(), string(body))           panic(err)       }          fmt.Printf("Use link: %s\n", link.RecoveryLink)   }
In both examples, replace
{ORY_API_KEY}
with your Ory API key,
$ACCOUNT_ID
with the ID of the account you want to recover, and
$PROJECT_SLUG
with your project slug. Please note that the recovery link will only allow the user to set up a new password. They will not be able to connect to a social sign-in provider or perform any other actions. For more information, please refer to the [Ory documentation](https://www.ory.sh/docs/kratos/manage-identities/account-recovery).
w
@chilly-king-10285 when I navigate to the link I see general page:
Welcome to the Ory Account Experience!
c
A message from kapa.ai
The "Welcome to the Ory Account Experience!" page is a default screen that is meant for debugging purposes. If you're seeing this page when navigating to the recovery link, it might be because the recovery flow hasn't been properly initiated or the recovery link is not correctly formatted. To disable the welcome screen and direct users straight to the recovery flow, you can do the following: 1. Go to the [Ory Console](https://console.ory.sh/projects/current/ui). 2. Navigate to Branding → UI URLs. 3. Toggle off the "Enable the Account Experience welcome page" setting. This will hide the default "welcome" screen that isn't intended for end-users. Also, ensure that the recovery link is correctly formatted. It should look something like this:
Copy code
<https://your-kratos-server.com/self-service/recovery/methods/link?token=abc&flow=def>
In this example,
token
is the recovery token and
flow
is the recovery flow ID. Both of these should be included in the recovery link you generated. For more information, please refer to the [Ory documentation](https://www.ory.sh/docs/kratos/bring-your-own-ui/configure-ory-to-use-your-ui#custom-domain-setup).