Re: Logged username in shopify app

How can I retrieve a logged username in a Shopify app?

Lucifer4
Shopify Partner
12 0 3

Hi,
I need to retrieve the username of the currently logged in user for my shopify app.
App is based on shopify remix and queryAPI.
Is there such a possibility?

Replies 5 (5)

topnewyork
Astronaut
1125 151 186

In a Shopify app, you typically won't have direct access to the username of the currently logged-in user due to privacy and security reasons. However, you can access the customer's information if they are logged into their account on your store. Here's how you can retrieve customer information including their username in a Shopify app:

  1. Using Shopify APIs: You can use the Shopify API to retrieve customer information. When a customer is logged in and interacts with your app, you can make API requests to fetch details about the currently logged-in customer.

  2. Customer Access Token: When a customer installs your app or logs in, your app can obtain a customer access token. With this token, you can make requests to the Shopify API on behalf of the customer to fetch their information, including their username if it's available.

Here's an example of how you might retrieve customer information including their username using Shopify's GraphQL API in a Shopify app built on Shopify's app framework:

 

query {
  customer(customerAccessToken: "CUSTOMER_ACCESS_TOKEN") {
    id
    firstName
    lastName
    email
    displayName
    ...
  }
}

 

Replace '"CUSTOMER_ACCESS_TOKEN"' with the access token you obtained for the logged-in customer. This query will return details about the customer, including their first name, last name, email, and display name, which could be considered their username.

Need a Shopify developer? Hire us at Top New York Web Design
Boost Your Store Sales with Volume/Tier Discount Try Big Bulk Discount
Create New Shopify Store For Just 1$/Month
Lucifer4
Shopify Partner
12 0 3

I forgot to mention that the application I am creating is of the embeded type. The solution you provided is directed to Storefront Api.
There is something similar for embeded apps?
I'm referring to the information of the user who is currently using the app.

geragt280
Shopify Partner
1 0 0

Lets say you are working on shopify app it has an embedded shopify instance called ShopifyGlobal with variable name shopify it consist of a property called user. You can find further about this here.
https://shopify.dev/docs/api/app-bridge-library/apis/user

RMedia
Shopify Partner
95 10 15

@Lucifer4 
Thought I'd pitch in here....

 

You can get the current user (of your app) email by adding to your shopify.server.js

useOnlineTokens: true,

 

And then you can update your remix loader to get info from session.

export const loader = async ({ request }) => {
  const {session } = await authenticate.admin(request);
  console.log(session.onlineAccessInfo.associated_user.id, "THE USER ID");
  console.log(session.onlineAccessInfo.associated_user.email, "THE USER EMAIL")

  return null;
};

 

Founder @ Advanced Free Shipping, create custom free shipping rules easily.
- Set Free-Shipping by 20 parameters; products, collections, customers + more
- No need for confusing Scripts or Carrier Calculated Shipping
- To learn more about 'Advanced Free Shipping' visit our Shopify app page here.
Junaid-Ahmed
Shopify Partner
80 17 17

Thanks @RMedia, this works but in my case, the `associated_user` only includes `id`. Do you have any idea how I can get more data about the user?

- Was my reply helpful? Click Like to let me know!
- Was your question answered? Mark it as an Accepted Solution.