# Difference between okta-oidc-js and okta-sdk-nodejs

**URL:** <https://devforum.okta.com/t/difference-between-okta-oidc-js-and-okta-sdk-nodejs/10869>\
**Category:** Questions\
**Created:** [September 8, 2020, 5:17pm UTC](https://devforum.okta.com/t/difference-between-okta-oidc-js-and-okta-sdk-nodejs/10869 "2020-09-08T17:17:22Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![adriatic](https://sea1.discourse-cdn.com/oktadev/user_avatar/devforum.okta.com/adriatic/32/2122_2.png) [@adriatic](https://devforum.okta.com/u/adriatic)\
**Post date:** [September 8, 2020, 5:17pm UTC](https://devforum.okta.com/t/difference-between-okta-oidc-js-and-okta-sdk-nodejs/10869/1 "2020-09-08T17:17:23Z")

</div>

Only now I became aware of these **two** libraries - and searching the internet to answer my own question, I can only find a lot of articles explaining one or the other. The newest of these articles is [https://developer.okta.com/blog/2020/06/16/nodejs-login](https://developer.okta.com/blog/2020/06/16/nodejs-login) which may suggest the okta-oidc-js is the current replacement for okta-sdk-nodejs.

Since I am trying to refresh some 2 years old tutorials and blogs, I am quite curious about the answer to my “difference between okta-oidc-js and okta-sdk-nodejs” question.

---

<div class="post-metadata">

**Author:** ![andrea](https://sea1.discourse-cdn.com/oktadev/user_avatar/devforum.okta.com/andrea/32/2172_2.png) [@andrea](https://devforum.okta.com/u/andrea)\
**Post date:** [September 8, 2020, 6:02pm UTC](https://devforum.okta.com/t/difference-between-okta-oidc-js-and-okta-sdk-nodejs/10869/2 "2020-09-08T18:02:22Z")

</div>

@adriatic The two SDKs serve different purposes for different use cases.

Firstly, [okta-oidc-js](https://github.com/okta/okta-oidc-js) is a mono-repo where all our JavaScript SDKs reside, so most likely you are referring to [oidc-middleware](https://github.com/okta/okta-oidc-js/tree/master/packages/oidc-middleware), which is our Node OIDC SDK. Like our other OIDC backend/middleware SDKs, this one is used to protect resources via OAuth tokens.

On the other hand, [okta-sdk-nodejs](https://github.com/okta/okta-sdk-nodejs) is one of our management SDKs. This SDK is not used to protect your own application and is instead used for CRUD operations related to calling Okta’s APIs.

Fun fact: Most our SDKs follow a naming convention:

okta-auth SDKs are used to handle primary authentication use cases (such as custom login pages)  
okta-sdk SDKs are management SDKs, used to make call to Okta API endpoints  
okta-oidc SDKs are used to protect resources with OAuth tokens (this includes the repos within okta-oidc-js as the front end SDKs are designed to initiate the OAuth flow and protect resources as well)

---

<div class="post-metadata">

**Author:** ![adriatic](https://sea1.discourse-cdn.com/oktadev/user_avatar/devforum.okta.com/adriatic/32/2122_2.png) [@adriatic](https://devforum.okta.com/u/adriatic)\
**Post date:** [September 8, 2020, 9:02pm UTC](https://devforum.okta.com/t/difference-between-okta-oidc-js-and-okta-sdk-nodejs/10869/3 "2020-09-08T21:02:52Z")

</div>

Interesting how a clear and concise answer clears all the fog I thought hides your naming conventions. Nevertheless, I would think that your few paragraphs ought to be visible before any encounter with an object as complex as your product. I am almost tempted to create a Navigator for Okta as an open-source project for the Okta community.

If I may create a sub-question: while it is pretty obvious that Okta’s blogs / samples collection is not synced with the current set of SDKs, can I rely that your documentation (`https://developer.okta.com/docs/s`) is?

My current involvement with Okta is driven by my desire to present a complete IAM system (as different from say Passport.js) to Gatsby / Strapi community. You just saved me from missing some of the key points of Okta’s internal organization, so I clearly need to do some more reading before I just blindly adjust 2+ years old sample code.

Thank you @andrea for bailing me out from my swamp.

---

<div class="post-metadata">

**Author:** ![andrea](https://sea1.discourse-cdn.com/oktadev/user_avatar/devforum.okta.com/andrea/32/2172_2.png) [@andrea](https://devforum.okta.com/u/andrea)\
**Post date:** [February 13, 2024, 4:51pm UTC](https://devforum.okta.com/t/difference-between-okta-oidc-js-and-okta-sdk-nodejs/10869/4 "2024-02-13T16:51:00Z")

</div>


