All Projects → ueberauth → Ueberauth_github

ueberauth / Ueberauth_github

Licence: mit
GitHub OAuth2 Strategy for Überauth

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Ueberauth github

ueberauth facebook
Facebook OAuth2 Strategy for Überauth.
Stars: ✭ 72 (-10%)
Mutual labels:  oauth, oauth2, strategy
Ueberauth google
Google OAuth2 Strategy for Überauth.
Stars: ✭ 110 (+37.5%)
Mutual labels:  strategy, oauth2, oauth
Fw Cloud Framework
基于springcloud全家桶开发分布式框架(支持oauth2认证授权、SSO登录、统一下单、微信公众号服务、Shardingdbc分库分表、常见服务监控、链路监控、异步日志、redis缓存等功能),实现基于Vue全家桶等前后端分离项目工程
Stars: ✭ 717 (+796.25%)
Mutual labels:  oauth2, oauth
Cpprestsdk
The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.
Stars: ✭ 6,631 (+8188.75%)
Mutual labels:  oauth2, oauth
Node Oauth2 Server Mongo Example
Working oauth2 server with mongodb storage and minimal configuration
Stars: ✭ 76 (-5%)
Mutual labels:  oauth2, oauth
Next Auth
Authentication for Next.js
Stars: ✭ 8,362 (+10352.5%)
Mutual labels:  oauth2, oauth
Rack Oauth2
OAuth 2.0 Server & Client Library. Both Bearer and MAC token type are supported.
Stars: ✭ 652 (+715%)
Mutual labels:  oauth2, oauth
Play Silhouette
Silhouette is an authentication library for Play Framework applications that supports several authentication methods, including OAuth1, OAuth2, OpenID, CAS, 2FA, TOTP, Credentials, Basic Authentication or custom authentication schemes.
Stars: ✭ 826 (+932.5%)
Mutual labels:  oauth2, oauth
Auth
:atom: Social (OAuth1\OAuth2\OpenID\OpenIDConnect) sign with PHP
Stars: ✭ 457 (+471.25%)
Mutual labels:  oauth2, oauth
Socialite
Socialite is an OAuth2 Authentication tool. It is inspired by laravel/socialite, you can easily use it without Laravel.
Stars: ✭ 1,026 (+1182.5%)
Mutual labels:  oauth2, oauth
Ueberauth twitter
Twitter Strategy for Überauth
Stars: ✭ 31 (-61.25%)
Mutual labels:  oauth2, oauth
Qq
[READ ONLY] Subtree split of the SocialiteProviders/QQ Provider (see SocialiteProviders/Providers)
Stars: ✭ 50 (-37.5%)
Mutual labels:  oauth2, oauth
React Native Inappbrowser
📱InAppBrowser for React Native (Android & iOS) 🤘
Stars: ✭ 624 (+680%)
Mutual labels:  oauth2, oauth
Scribejava
Simple OAuth library for Java
Stars: ✭ 5,223 (+6428.75%)
Mutual labels:  oauth2, oauth
Mod auth openidc
OpenID Connect Relying Party implementation for Apache HTTP Server 2.x
Stars: ✭ 677 (+746.25%)
Mutual labels:  oauth2, oauth
Doorkeeper
Doorkeeper is an OAuth 2 provider for Ruby on Rails / Grape.
Stars: ✭ 4,917 (+6046.25%)
Mutual labels:  oauth2, oauth
Pizzly
The simplest, fastest way to integrate your app with an OAuth API 😋
Stars: ✭ 796 (+895%)
Mutual labels:  oauth2, oauth
Netcore Postgres Oauth Boiler
A basic .NET Core website boilerplate using PostgreSQL for storage, Adminer for db management, Let's Encrypt for SSL certificates and NGINX for routing.
Stars: ✭ 57 (-28.75%)
Mutual labels:  oauth2, oauth
Spruce
A social networking platform made using Node.js and MongoDB
Stars: ✭ 399 (+398.75%)
Mutual labels:  oauth2, oauth
Retroauth
A library build on top of retrofit, for simple handling of authenticated requests
Stars: ✭ 405 (+406.25%)
Mutual labels:  oauth2, oauth

Überauth GitHub

GitHub OAuth2 strategy for Überauth.

Installation

  1. Setup your application at GitHub Developer.

  2. Add :ueberauth_github to your list of dependencies in mix.exs:

    def deps do
      [{:ueberauth_github, "~> 0.7"}]
    end
    
  3. Add the strategy to your applications:

    def application do
      [applications: [:ueberauth_github]]
    end
    
  4. Add GitHub to your Überauth configuration:

    config :ueberauth, Ueberauth,
      providers: [
        github: {Ueberauth.Strategy.Github, []}
      ]
    
  5. Update your provider configuration:

    config :ueberauth, Ueberauth.Strategy.Github.OAuth,
      client_id: System.get_env("GITHUB_CLIENT_ID"),
      client_secret: System.get_env("GITHUB_CLIENT_SECRET")
    

    Or, to read the client credentials at runtime:

    config :ueberauth, Ueberauth.Strategy.Github.OAuth,
      client_id: {:system, "GITHUB_CLIENT_ID"},
      client_secret: {:system, "GITHUB_CLIENT_SECRET"}
    
  6. Include the Überauth plug in your router:

    defmodule MyApp.Router do
      use MyApp.Web, :router
    
    
      pipeline :browser do
        plug Ueberauth
        ...
       end
    end
    
  7. Create the request and callback routes if you haven't already:

    scope "/auth", MyApp do
      pipe_through :browser
    
      get "/:provider", AuthController, :request
      get "/:provider/callback", AuthController, :callback
    end
    
  8. Your controller needs to implement callbacks to deal with Ueberauth.Auth and Ueberauth.Failure responses.

For an example implementation see the Überauth Example application.

Calling

Depending on the configured url you can initiate the request through:

/auth/github

Or with options:

/auth/github?scope=user,public_repo

By default the requested scope is "user,public_repo". This provides both read and write access to the GitHub user profile details and public repos. For a read-only scope, either use "user:email" or an empty scope "". See more at GitHub's OAuth Documentation. Scope can be configured either explicitly as a scope query value on the request path or in your configuration:

config :ueberauth, Ueberauth,
  providers: [
    github: {Ueberauth.Strategy.Github, [default_scope: "user,public_repo,notifications"]}
  ]

It is also possible to disable the sending of the redirect_uri to GitHub. This is particularly useful when your production application sits behind a proxy that handles SSL connections. In this case, the redirect_uri sent by Ueberauth will start with http instead of https, and if you configured your GitHub OAuth application's callback URL to use HTTPS, GitHub will throw an uri_missmatch error.

To prevent Ueberauth from sending the redirect_uri, you should add the following to your configuration:

config :ueberauth, Ueberauth,
  providers: [
    github: {Ueberauth.Strategy.Github, [send_redirect_uri: false]}
  ]

Private Emails

Github now allows you to keep your email address private. If you don't mind that you won't know a users email address you can specify allow_private_emails. This will set the users email as [email protected].

config :ueberauth, Ueberauth,
  providers: [
    github: {Ueberauth.Strategy.Github, [allow_private_emails: true]}
  ]

License

Please see LICENSE for licensing details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].