
Product
Unify Your Security Stack with Socket Basics
A single platform for static analysis, secrets detection, container scanning, and CVE checks—built on trusted open source tools, ready to run out of the box.
@oada/oada-id-client
Advanced tools
JavaScript client library for OADA identity. Can be used both in NodeJS and in the browser.
For use in NodeJS or with something like webpack:
yarn add OADA/oada-id-client-js
You can also get it from a CDN in browser:
<script src="https://unpkg.com/@oada/oada-id-client"></script>
The code to use in the browser can be generated with the following command:
$ npm run bundle
This will create the file dist/bundle.js
.
Version of the library functions which wrap the core functionality for use as connect style "middleware". This can be used in a NodeJS server using a compatible web development framework, such as express.
For a working example of using this wrapper, see the on server example.
Middleware for generating an ID token request against an OADA identity provider.
domain
string of domain with which to log in the user.
The value passed to the function can be overridden by a query or form
parameter with a name of domain
.
options
object containing at least the following properties:
metadata
][] object containg client metadata,
or string of a [software_statement
][] JWTprivateKey
pem
string or buffer containing your client's PEM encoded private RSA
keykid
][] string containing the key ID parameter,
for finding the corresponding public key where your client is registeredparams
[Optional OpenID Connect parameters][oidparams] placed in params
as
string properties will be used (e.g. display
, prompt
, login_hint
)var options = {
metadata: {
/* See spec linked above */
},
privateKey: {
pem: fs.readFileSync('/path/to/key.pem'),
kid: 'key_id_corresponding_to_pem',
},
};
app.use(
'/getIdToken',
oadaIdClient.getIDToken('some.oada-identity-provider.com', options)
);
Middleware for generating an access token request against an OADA compliant API.
domain
string of domain from which to get an OADA API access token.
The value passed to the function can be overridden by a query or form
parameter with a name of domain
.
options
object containing at least the following properties:
metadata
][] object containg client metadata,
or string of a [software_statement
][] JWTprivateKey
pem
string or buffer containing your client's PEM encoded private RSA
keykid
][] string containing the key ID parameter,
for finding the corresponding public key where your client is registeredscope
][] space separated string of OAuth scopes for the request access
token to have.params
[Optional OpenID Connect parameters][oidparams] placed in params
as
string properties will be used (e.g. display
, prompt
, login_hint
)var options = {
metadata: {
/* See spec linked above */
},
privateKey: {
pem: fs.readFileSync('/path/to/key.pem'),
kid: 'key_id_corresponding_to_pem',
},
scope: 'some.oada.defined.scope',
};
app.use(
'/getAccessToken',
oadaIdClient.getAccessToken('some.oada-cloud-provider.com', options)
);
Middleware for handling redirects from getIDToken
or getAccessToken
middlewares.
In most case you will apply this middleware in two locations,
one to receive getIDToken
redirects and
another to receive getAccessToken
redirects.
// Handle ID token redirects
app.use(
'/url/referenced/by/getIDToken/redirect_uri',
oadaIdClient.handleRedirect()
);
app.use(
'/url/referenced/by/getIDToken/redirect_uri',
function (req, res, next) {
// ID token is in req.token
console.dir(req.token);
}
);
// Handle access token redirects
app.use(
'/url/referenced/by/getAccessToken/redirect_uri',
oadaIdClient.handleRedirect()
);
app.use(
'/url/referenced/by/getAccessToken/redirect_uri',
function (req, res, next) {
// Access token is in req.token
console.dir(req.token);
}
);
Version of the library functions which wrap the core functionality for easy use in the browser.
For a working example of using this wrapper, see the in browser example.
Asynchronous function for generating an ID token request against an OADA identity provider.
domain
string of domain with which to log in the user.
options
object containing at least the following properties:
metadata
][] object containg client metadata,
or string of a [software_statement
][] JWTparams
[Optional OpenID Connect parameters][oidparams] placed in params
as
string properties will be used (e.g. display
, prompt
, login_hint
)[Optional OpenID Connect parameters][oidparams] placed in options as
string properties will be used (e.g. display
, prompt
, login_hint
).
callback
function of the form function(err, idToken)
.
var options = {
metadata: {
/* See spec linked above */
},
};
var domain; // Set domain based on text box, dropdown, etc.
oadaIdClient.getIDToken(domain, options, function (err, idToken) {
if (err) {
return console.dir(err);
} // Soemthing went wrong
console.dir(idToken);
});
Asynchronous function for generating an access token request against an OADA compliant API.
domain
string of domain from which to get an OADA API access token.
The value passed to the function can be overridden by a query or form
parameter with a name of domain
.
options
object containing at least the following properties:
metadata
][] object containg client metadata,
or string of a [software_statement
][] JWTscope
][] space separated string of OAuth scopes for the request access
token to have.params
[Optional OpenID Connect parameters][oidparams] placed in params
as
string properties will be used (e.g. display
, prompt
, login_hint
)callback
function of the form function(err, accessToken)
.
var options = {
metadata: {
/* See spec linked above */
},
scope: 'some.oada.defined.scope',
};
var domain; // Set domain based on text box, dropdown, etc.
oadaIdClient.getAccessToken(domain, options, function (err, accessToken) {
if (err) {
return console.dir(err);
} // Soemthing went wrong
console.dir(accessToken);
});
Function for handling redirects generated by
getIDToken
or getAccessToken
function.
Simply needs to be called by the page served from the URL corresponding to
[redirect_uri
][].
<!-- Page served at redirect_uri for getIDToken and/or getAccessToken -->
<html>
<head>
<script src="path/to/library/browser/code.js"></script>
<script>
oadaIdClient.handleRedirect();
</script>
</head>
</html>
Not yet documented.
client_id
]: http://tools.ietf.org/html/rfc6749#section-2.2 "RFC6794 Section 2.2"
[redirect_uri
]: http://tools.ietf.org/html/rfc6749#section-3.1.2 "RFC6794 Section 3.1.2"
[scope
]: http://tools.ietf.org/html/rfc6749#section-3.3 "RFC6794 Section 3.3"kid
]: https://tools.ietf.org/html/draft-ietf-jose-json-web-key-31#section-4.5 "JWK Section 4.5"metadata
]: https://tools.ietf.org/html/draft-ietf-oauth-dyn-reg#section-2 "oauth-dyn-reg Section 2"
[software_statement
]: https://tools.ietf.org/html/draft-ietf-oauth-dyn-reg#section-2.3 "oauth-dyn-reg Section 2.3"FAQs
OADA identity client library for Node.JS and Browser
The npm package @oada/oada-id-client receives a total of 4 weekly downloads. As such, @oada/oada-id-client popularity was classified as not popular.
We found that @oada/oada-id-client demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 8 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
A single platform for static analysis, secrets detection, container scanning, and CVE checks—built on trusted open source tools, ready to run out of the box.
Product
Socket is launching experimental protection for the Hugging Face ecosystem, scanning for malware and malicious payload injections inside model files to prevent silent AI supply chain attacks.
Research
/Security News
The Socket Threat Research Team uncovered a coordinated campaign that floods the Chrome Web Store with 131 rebranded clones of a WhatsApp Web automation extension to spam Brazilian users.