Skip to content

dmitry-makovsky/adonis6_ally_yandex

Repository files navigation

AdonisJS 6 Ally Yandex Driver

A Yandex driver for AdonisJS Ally.

Getting started

1. Install the package

Install the package from your command line.

npm i adonis6_ally_yandex

or

yarn add adonis6_ally_yandex

2. Configure the package

node ace add adonis6_ally_yandex

3. Add the provider to allyConfig in your ./config/ally.ts file

import { YandexDriverService } from 'adonis6_ally_yandex'

const allyConfig = defineConfig({
  ...
  yandex: YandexDriverService({
    clientId: env.get('YANDEX_CLIENT_ID'),
    clientSecret: env.get('YANDEX_CLIENT_SECRET'),
    // Define here your callback URL, e.g.:
    callbackUrl: `${env.get('APP_URL')}/auth/yandex/callback`,

    //
    // Additional options
    //
    // Use additional scopes if needed (default: ['login:email', 'login:info', 'login:avatar'])
    // e.g:
    scopes: ['login:email', 'login:info', 'login:avatar', 'login:birthday', 'login:default_phone'],

    // Use custom url getting user info (default: 'https://login.yandex.ru/info'):
    userInfoUrl: 'https://login.yandex.ru/info',

    // Use custom url getting access token (default: 'https://oauth.yandex.ru/token') e.g.:
    accessTokenUrl: 'https://oauth.yandex.com/token',

    // Use custom url getting authorize token (default: 'https://oauth.yandex.ru/authorize') e.g.:
    authorizeUrl: 'https://oauth.yandex.com/authorize',

    // Use custom url getting user avatar (default: 'https://avatars.yandex.net/get-yapic'):
    userAvatarUrl: 'https://avatars.yandex.net/get-yapic',

    // Use custom url getting user avatar size (default: 'islands-200') 
    // All sizes you can find here: https://yandex.ru/dev/id/doc/ru/user-information#avatar-access
    // e.g.:
    userAvatarSize: 'islands-200',
  }),
  ...
})

Manual configuration

If you don't want to configure the driver automatically:

1. Add ENV variables to your ./start/env.ts file for validation

...
  YANDEX_CLIENT_ID: Env.schema.string(),
  YANDEX_CLIENT_SECRET: Env.schema.string(),

2. Add ENV variables to your .env file, and optionally to your .env.example file

YANDEX_CLIENT_ID=your_client_id
YANDEX_CLIENT_SECRET=your_client_secret

And after that, add the provider to allyConfig as indicated in step 3 of the automatic configuration above

About

AdonisJS 6 ally driver for Yandex

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published