Socket
Socket
Sign inDemoInstall

adonis-ally-battlenet

Package Overview
Dependencies
110
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    adonis-ally-battlenet

Provides a Driver for Adonis Ally for supporting OAuth logins via [Blizzard/Battle.net](https://develop.battle.net).


Version published
Maintainers
1
Install size
6.99 MB
Created

Readme

Source

adonis-ally-battlenet

Provides a Driver for Adonis Ally for supporting OAuth logins via Blizzard/Battle.net.

Setup

Installation

npm install adonis-ally-battlenet

Register Service Provider

Add the adonis-ally-battlenet servicer provider to your providers array in start/app.js.

const providers = [
  ...
  'adonis-ally-battlenet/ServiceProvider'
]

Update configuration

Update the services configuration file in config/services.js with a battlenet property.

/*
|--------------------------------------------------------------------------
| Services Configuration
|--------------------------------------------------------------------------
|
| This is general purpose file to define configuration for multiple services.
| The below config is for the ally provider. Make sure to save it inside
| config/services.js file.
|
| Happy Coding :)
|
*/

const Env = use('Env')

module.exports = {
  ally: {
    /*
    |--------------------------------------------------------------------------
    | Battlenet Configuration
    |--------------------------------------------------------------------------
    |
    | You can access your application credentials from the Blizzard developers
    | portal. https://develop.battle.net/access/
    |
    */
    battlenet: {
      // client_id  obtained from https://develop.battle.net/access/
      clientId: Env.get('BATTLENET_CLIENT_ID'),

      // client_secret obtained from https://develop.battle.net/access/
      clientSecret: Env.get('BATTLENET_CLIENT_SECRET'),

      // app URL must be the same as configured on the developer portal
      redirectUri: `${Env.get('APP_URL')}/authenticated/battlenet`,

      // additional scopes you wish to always request on login
      scope: ['wow.profile']
    },

    ...
  }
};

Don't forget to add the BATTLENET_CLIENT_ID and BATTLENET_CLIENT_SECRET to your .env file.

Usage

start/routes.js

const Route = use('Route')

Route.get('login', 'LoginController.redirect');
Route.get('authenticated/battlenet', 'LoginController.callback');

app/Controllers/Http/LoginController.js

class LoginController {

  async redirect({ ally }) {
    const driver = ally.driver('battlenet')
    await driver
      .scope(['sc2.profile']) // additionally request permission to access the users SC2 profile
      .redirect();
  }

  async callback({ ally, auth, response }) {
    const battlenerUser = await ally.driver('battlenet').getUser();

    // user details to be saved
    const userDetails = {
      id: battlenerUser.getId(),
      nickname: battlenerUser.getNickname(),
      token: battlenerUser.getAccessToken(),
      login_source: 'battlenet'
    };

    // Battle.net does not provide the email during OAuth login,
    // so you may need to add additional logic to ask the user for their
    // email or other information if you want to save that in your database as well.

    return response.json(userDetails);
  }
}

module.exports = LoginController;

Keywords

FAQs

Last updated on 13 Oct 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc