Home

Awesome

UeberauthLine Hex pm hex.pm downloads CI Build

An Uberauth strategy for LINE OAuth2 authentication.

Inspired by Ueberauth for Facebook

Installation

If available in Hex, the package can be installed as:

  1. Add ueberauth_line to your list of dependencies in mix.exs:
    def deps do
      [{:ueberauth_line, "~> 0.1.2"}]
    end
  1. Ensure ueberauth_line is started before your application:
    def application do
      [applications: [:ueberauth_line]]
    end
  1. Add Line to your Überauth configuration:
    config :ueberauth, Ueberauth,
      providers: [
        line: {Ueberauth.Strategy.Line, []}
      ]
  1. Update your provider configuration:
    config :ueberauth, Ueberauth.Strategy.Line.OAuth,
      client_id: System.get_env("LINE_CLIENT_ID"),
      client_secret: System.get_env("LINE_CLIENT_SECRET")
  1. Include the Überauth plug in your controller:
    defmodule MyApp.AuthController do
      use MyApp.Web, :controller
      plug Ueberauth
      ...
    end
  1. 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

Set up LINE Channel

Follow instructions here https://developers.line.me/line-login/overview

Side notes

This library uses Erlang :crypto.strong_rand_bytes for nonce and state generation. Make sure that RAND_bytes method from OpenSSL is available.

Testing

A Cowboy Mock server is available for testing purposes. Many thanks to Sophie DeBenedetto for the great tutorial on server mocking in Elixir.