Skip to content

An example of Clojure code working with Oauth. Trivial looking back on it, hard work (for me) to get it going

License

Notifications You must be signed in to change notification settings

keithmantell/oauth-sample

Repository files navigation

oauth-sample

A sample web app using Oauth to demo how to use Oauth2 in Clojure.

It has been tested with Github and with a private server as the Oauth authorization server.

Warnings

  • This is a sample which worked at the end of November 2018
  • It was mainly a vehicle for my learning: raising my experience in Clojure, adding a basic knowledge of Oauth. I could not make other libraries work but that coukld be down to me. I have a todo about revisiting say ring-oauth now I understand more.
  • My code currently hardcodes the grant-type as "authorization_code". So far bothttest servers have allowed this - one insisted it was set, the other (github) accepted it.

Github Oauth

The main Github Oauth page is here: https://developer.github.com/apps/building-oauth-apps/ and is an excellent resource.

Usage

  • Register you app with Github https://developer.github.com/apps/building-oauth-apps/

  • Set environment variables: -- CLIENT_ID and CLIENT_SECRET as per the values given during registration step -- AUTHORIZATION_ENDPOINT for the authorization server (see example set-variables file) -- TOKEN_ENDPOINT to exchange the authorization code for tokens ( as per the Oauth Server setup) -- HOST_URL for your website (e.g. https://localhost:3000 - this is also set during registration) -- REDIRECT_URI where you code handles the successful authentication return ( again set with the Oauth server during registration) -- SCOPE : what resources access is being granted. This varies by Oauth server.

  • Run 'lein ring server' and navigate to browser page, usually http://localhost:3000

Currently there is a single thread through authorizing, to getting an authorization code to getting a token and then using it to get User information

Contact: [email protected]

License

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

About

An example of Clojure code working with Oauth. Trivial looking back on it, hard work (for me) to get it going

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published