Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementing token backend persistency #76

Open
Freyskeyd opened this issue Feb 2, 2020 · 4 comments
Open

Implementing token backend persistency #76

Freyskeyd opened this issue Feb 2, 2020 · 4 comments
Labels
feature Unimplemented addition

Comments

@Freyskeyd
Copy link

Feature

Currently when using oxide-auth within an api which will be deploy multiple times with a LB on front we can't rely on the internal vector which hold the generated tokens.

We need to be able to share a common backend for those tokens to allow multiple instance to access those DB and check for the tokens validity.

I was thinking of Redis but other connectors can be implemented.

Alternatives

I don't really see any alternatives to a shared backend storage.

@Freyskeyd Freyskeyd added the feature Unimplemented addition label Feb 2, 2020
@asonix
Copy link
Contributor

asonix commented Feb 4, 2020

this can be done by implementing oxide primitives like the Authorizor, Issuer, and Registrar traits for a custom backend. I don't think it is oxide-auth's job to provide these, since then it would be declaring a blessed database.

@MatteoJoliveau
Copy link

It is at least necessary to add async/await support as many persistence libraries as well as frontend frameworks like Actix already make use of this feature. @HeroicKatora can you give an update regarding these topics? I know you probably don't have much time to spare at the moment but these are pretty essential features to have. I'm currently writing my own OAuth implementation because Oxide is dragging behind the rest of the ecosystem and I had troubles integrating it with Actix Web 2.0 (pending PR by @gzp-crey here) and Reqwest (I use CouchDB as my database).

@DanielJoyce
Copy link

I think an Async Api is more critical for this reason, interfacing with storage.

@HeroicKatora
Copy link
Owner

Sorry for not updating this explicitly, async is possible since 0.5.0 and there are utility bindings based on async-trait for it as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Unimplemented addition
Projects
None yet
Development

No branches or pull requests

5 participants