Giter VIP home page Giter VIP logo

geheimtur's People

Contributors

anthgur avatar ddeaguiar avatar deathtenk avatar milt avatar otann avatar propan avatar stuarth avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

geheimtur's Issues

Guard interceptor blocks OPTIONS requests

If the client is making CORS requests to a pedestal server, the preflight OPTIONS request will not include credentials, so the guard interceptor will cause it to be refused.

'fetch-token' assumes that the response is form-urlencoded but that's not necessarily the case

In the fetch-token function, ring-codec/form-decode is used to parse the response. While this works with Github, I had issues setting up integration with Google whose token response payload is json.

There are two ways that this can be handled:

  1. Use different token response parse fn's based on the token response Content-Type
  2. Allow the user to provide a token-response-parse-fn in the provider config

I'd prefer the former over the later. Pedestal already includes Cheshire so we can use it to parse json responses.

What are your thoughts? I'd be happy to work on a pull request.

Consider adding a CHANGES.md or similar

  1. Love this project. :)
  2. It would be super helpful to understand what changes (especially breaking changes) were introduced from version to version without needing to view the Git log / read all of the code to find out.

For instance, I am still running version 0.2.1 and would like to be on the latest stable release, but have to do some log surfing to figure out if/how the changes might affect my application. Again, thank you for releasing this project. Cheers!

Logo proposal

I have a logo proposal for you. I want to be a contributor. What do you say?

Live Demo Broken

Application error

An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command
heroku logs --tail

Not compatible with pedestal 0.4.0

Exception in thread "main" java.lang.ExceptionInInitializerError
    at clojure.main.<clinit>(main.java:20)
Caused by: java.lang.IllegalAccessError: definterceptorfn does not exist, compiling:(geheimtur/interceptor.clj:1:1)

basic auth wrong return code

when a user accesses a resource restricted via basic auth, the return code should be 401 and not 403, so that the browser asks for the credentials again.

credentials extra arity with request

I was thinking that sometimes it would be usful to have access to the request information when writing a credentials function.

For example I was playing around with the idea of attaching a datomic db instance into the request. Then I would want to do the user lookup based on that db instance.

Client secret rotation

Hi!

While using geheimtur, I encountered a problem, where my app cannot login new users after a day of uptime. I've discovered that in our company keys are rotated daily, and my app was using outdated one.

I see in the code of geheimtur.impl.oauth2/authenticate-handler handler is created and is bound to the value it reads from providers map.

Could you please consider adding an option to give providers-fn that will provide value in runtime or some similar functionality?

And of course, thank you for the excellent library.

Extra query params per provider?

First off, thanks for your great work on this!

We've run into a problem while implementing a Google provider, namely that Geheimtur doesn't allow the addition of extra query params to initial auth requests in geheimtur.impl.oauth2/authenticate-handler. This is a bit of a dealbreaker with providers like Google that (annoyingly) use extra params to control requested access. For instance, the access_type param controls whether or not a refresh token will be available (see "Step 2").

This could be alleviated pretty easily by adding a key to the provider map with a map value which would be converted to additional query params.

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.