Giter Club home page Giter Club logo

Comments (9)

robertjd avatar robertjd commented on July 24, 2024

Hi @wrenoud

I can confirm what you're seeing. It's related to an issue with our Node SDK that we have to resolve w/ regards so how we cache entity expansions (see stormpath/stormpath-sdk-node#85)

In the meantime I think an acceptable workaround is to always call customData.get on the account object. The result of that call will be cached within the SDK so you won't be incurring a network request every time you call this method.

from express-stormpath.

wrenoud avatar wrenoud commented on July 24, 2024

Thanks @robertjd, I'll follow the discussion on the SDK issue.

from express-stormpath.

wrenoud avatar wrenoud commented on July 24, 2024

I haven't tested this since we've moved away from populating customData, but I believe this can be closed as it was addressed in 0.6.0 of the SDK.

from express-stormpath.

robertjd avatar robertjd commented on July 24, 2024

Thanks for the update. If you don't mind my asking, what solution did you find while custom data wasn't working correctly?

from express-stormpath.

wrenoud avatar wrenoud commented on July 24, 2024

Initially the solution I mentioned above is what we did, just always force expansion. We were creating a UUID, or are still rather, and trying to save that in the customData to "deserialize" the local user profile from our database. .

Recently we switched to using the email address for local lookup to clean up the process.

I was curious to ask about the id in the account href, I was hesitant to use it locally. Are other client using it?

from express-stormpath.

robertjd avatar robertjd commented on July 24, 2024

The identifier in the account href is globally unique, so it's totally safe to use that for lookups. This is the case for all Stormpath resources.

from express-stormpath.

lhazlewood avatar lhazlewood commented on July 24, 2024

Just a note: in the world of REST an href is the only 'id' that REST clients should be concerned with. HTTP allows redirects and changing of URLs, so the HREF is king (can be 302 redirected, etc). Relying on only an ID embedded in a URL is a foreign concept in REST and HTTP: HTTP browsers do not know how to parse URLs to discover IDs, and neither should REST clients. The href is the id as far as the client is concerned.

While stormpath internal IDs are guaranteed to be globally unique, from a REST perspective, that is an implementation detail. Because of HTTP redirection and potential URL changes over time, referencing an id only and then manually constructing the HREF based on that is a risky proposition, and could break client code in the future. HREFs are what allows the web to work in the face of change, and is also true for rest clients.

Because of this it is not recommended to parse internal/embedded IDs and use them for your own purposes. It is usually safer to generate your own ID and save that in the customData model, exactly as you have done :)

from express-stormpath.

robertjd avatar robertjd commented on July 24, 2024

Thanks @lhazlewood for the update! REST FTW

from express-stormpath.

rdegges avatar rdegges commented on July 24, 2024

Closing this issue as things seem to be resolved.

from express-stormpath.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.