README.md

# SimpleOAuth

The following platform logins are supported:

- Google

## Configurations

Setup runtime configuration.

```elixir
config :simple_oauth, [keyword configurations]
```

### Google

```elixir
config :simple_oauth,
  [
    google: [
      client_id: {client_id},
      client_secret: {client_secret},
      host: {host},
      scope: {scope}, # optional, default: "profile email"
      callback_path: {callback_path}, default: "/oauth/google/callback"
    ]
  ]
```

## Usage

### Google

There are 3 main context apis (under `SimpleOAuth.Google`):

1. `oauth_url/0`/`oauth_url/1` - login google account and google will call the callback api;
2. `token/0`/`token/1` - get token (include `access_token`) by the callback request;
3. `user_info/1` - get user info (include email/name/avatar and ect.) by `access_token`.

To get user info by the callback api request (`code` is the parameter):

```elixir
    {:ok, token} = SimpleOAuth.Google.token(code)
    {:ok, profile} = SimpleOAuth.Google.user_info(token["access_token"])
```