Comments (4)
My recommendation is, if you want to use passport - start fresh with a pure passport example. Then when you know how passport works and you want to connect it to an OIDC OP come back and
- discover the OP (Issuer)
- instantiate a Client off that OP (Issuer)
- pass it to the Strategy constructor
- register that Strategy instance with your passport.
from node-openid-client.
I'm confused about usage with passport.js and node-openid-provider.
I guess this is where your disconnect happens. The two aren't to be meshed together.
- Passport.js (see the library's website) is a multi provider authentication library for a website.
- A Strategy that i provide with openid-client is so that you can use any OpenID Connect Provider with your passport.js setup, i.e. next to facebook and local account signup.
- You use these strategies against multiple providers and the passport lib makes it so that you just have one interface
- There's nothing from passport that belongs to an OpenID Connect provider
- oidc-provider is for when you want to be an OpenID Connect Provider for many Relying Parties.
So how and where do I require the openid-client passport Strategy?
Please see passport js usage documentation first.
Is there supposed to be a login view provided on the RP for each OP's passport strategy?
This makes 0 sense to me. Are you familiar with OpenID Connect actors and how they interact with one another?
from node-openid-client.
Thanks for replying ---
Okay, yes I think I'm familiar. .. but I'm simultaneously getting used to the differences between express and koa2 and my brain may have overheated.
The Open ID authentication flow I'm getting familiar with this illustration of how the OpenID Connect Actors interact.
and .. yes I do think I need to review the passport.js documentation further.
One detail could help me with my disconnect..
In the example authentication occurs on the OP. It does not use passport. It's a nice clean simple example. The node-oidc-client RP redirects (as needed) to the /auth view on the OP, again no passport.
But if I want to authenticate using a OP provider, FB / Twit / oidc-provider (whichever) to grant access to a restricted resource on my RP. To do that I'll use passport.js.
Do I require passport.js and the requisite Passport strategy in the app.js of my RP? because when I try to do that it tells me I have a circular reference?
Or, instead of editing the RP example, do I create a separate site and const Strategy = require('openid-client').Strategy;
there in its app.js ? thus making an RP out of that site?
Apologies.. it's been quite confusing.
from node-openid-client.
Thanks for suggesting I take this approach!
from node-openid-client.
Related Issues (20)
- Passport strategy broken with iss in authentication request HOT 3
- JWT signature error validations aren't passed through
- Need option for verify AZP when AUD is an array
- Device flow with GitHub does not continue to poll HOT 3
- Auth server and Postman non-conforming? HTTP Basic Auth x-www-form-urlencoded HOT 2
- Client.userinfo does not accept other header than Authorization HOT 3
- Always return an error saying please use an absolute URL HOT 1
- Low-level errors during `Issuer.discover()` cause error without stack trace
- OAuth 2.0 Device Authorization Grant (Device Flow) - poll without PKCE HOT 3
- Type checking httpOptions and rejectUnauthorized
- RPError thrown when IdToken JWE Header enc is blank HOT 2
- client won't run under `edge` runtime HOT 1
- Support setting client_secret to an empty string when using client_secret_basic or client_secret_post HOT 1
- Cannot assign to read only property 'dpopProof' of object '#<Client>' HOT 2
- Unsuccessful Callback to Unknow client side error HOT 10
- isKeyObject check fails in Bun HOT 5
- Scope delimiter replace problem HOT 2
- Multiple authenticate requests from the same session causes state mismatch HOT 1
- Can't authenticate when the server advertises authorization_response_iss_parameter_supported HOT 2
- Requests made without Accept-Encoding header HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-openid-client.