Example: Seamless credential sharing across multiple websites

To set up credential sharing across multiple websites:

  • Designate a primary domain: Choose one domain as the primary reference point for links.
  • Create and host assetlinks.json files:
    • Primary domain: Create and host an assetlinks.json file on your primary domain listing all domains sharing credentials.
    • Other domains: Create and host an assetlinks.json file on each of the other domains, each linking back to the primary domain.

In the following example, we designated example.com as the primary domain. All other listed domains share credentials with example.com and with each other.

Before setting up credential sharing ensure you have completed the prerequisites.

To declare credential sharing across these websites:

  1. Create an assetlinks.json file for the primary domain with the following content:

      [
        {
          "relation": ["delegate_permission/common.get_login_creds"],
          "target": {
            "namespace": "web",
            "site": "https://example.com"
          }
        },
        {
          "relation": ["delegate_permission/common.get_login_creds"],
          "target": {
            "namespace": "web",
            "site": "https://example.org"
          }
        },
        {
          "relation": ["delegate_permission/common.get_login_creds"],
          "target": {
            "namespace": "web",
            "site": "https://example.net"
          }
        },
        {
          "relation": ["delegate_permission/common.get_login_creds"],
          "target": {
            "namespace": "web",
            "site": "https://myownpersonaldomain.com"
          }
        }
      ]
    
  2. Host the Digital Asset Links JSON file at the following location on the primary URL: https://example.com/.well-known/assetlinks.json.

  3. Create a simplified assetlinks.json file for the other domains referencing the main domain's assetlinks.json file:

      [
        {
          "relation": ["delegate_permission/common.get_login_creds"],
          "target": {
            "namespace": "web",
            "site": "https://example.com"
          }
        }
      ]
    
  4. Host copies of this Digital Asset Links JSON file at the following location on all other domains, in this case:

    • example.org/.well-known/assetlinks.json
    • example.net/.well-known/assetlinks.json
    • mypersonaldomain.com/.well-known/assetlinks.json

After following these steps, you have successfully set up seamless credential sharing across multiple websites. All listed websites can now share credentials.

This approach simplifies the process of adding new websites to your seamless credential sharing network.

Add a new website to the credential sharing network

To add a new website to the credential sharing network:

  1. Update the assetlinks.json file hosted on your primary domain (in this case, https://example.com) adding a new statement to the list that includes the new domain's URL:

      ...
      {
        "relation": ["delegate_permission/common.get_login_creds"],
        "target": {
          "namespace": "web",
          "site": https://NEW_DOMAIN
        }
      }
      ...
    

    Where NEW_DOMAIN is the new domain name.

  2. Create and host an assetlinks.json file on the new domain, linking back to the primary domain (in this case, https://example.com), with the following content:

      [
        {
          "relation": ["delegate_permission/common.get_login_creds"],
          "target": {
            "namespace": "web",
            "site": "https://example.com"
          }
        }
      ]
    

All other assetlinks.json files remain unchanged. This approach promotes code reusability and reduces the potential for errors during updates.