How to extend Ally?



I want add more provider on Ally, as Tumblr and Medium, how I can extend Ally? And which file I have to add to extend this package?




I would imagine you’d create a driver. See here

Don’t forget to add tests.

Hope this helps :smiley:


I tried to extend with Tumblr provider.

{ OAuthException: E_OAUTH_TOKEN_EXCHANGE: oauth_signature does not match expected value
at Function.tokenExchangeException (C:\Users\Maxence\Documents\Projets\test-project\node_modules@adonisjs\ally\src\Exceptions\index.js:36:19)
at Tumblr.parseProviderError (C:\Users\Maxence\Documents\Projets\test-project\node_modules@adonisjs\ally\src\Schemes\OAuth.js:135:30)
at client.getOAuthAccessToken (C:\Users\Maxence\Documents\Projets\test-project\node_modules@adonisjs\ally\src\Schemes\OAuth.js:189:32)
at C:\Users\Maxence\Documents\Projets\test-project\node_modules\oauth\lib\oauth.js:465:22
at passBackControl (C:\Users\Maxence\Documents\Projets\test-project\node_modules\oauth\lib\oauth.js:397:13)
at IncomingMessage. (C:\Users\Maxence\Documents\Projets\test-project\node_modules\oauth\lib\oauth.js:409:9)
at IncomingMessage.emit (events.js:165:20)
at endReadableNT (_stream_readable.js:1101:12)
at process._tickCallback (internal/process/next_tick.js:152:19)
{ statusCode: 401,
data: ‘oauth_signature does not match expected value’ } }

The Github repository is:

Thanks to help me.


Yeah this is an odd one. I can’t seem to get beyond this either. I’m on it though will report back with my findings.


Now, it’s Medium who give me an error…

I try to connect my website account on Medium (blog), via this URL:

But, I get this Medium error:

We didn’t understand your request.

enter image description here


You can check this repo for inspiration.


Yes, I know.


I extended Bitly provider:

But the problem is they is a concat of baseUrl() and accessTokenUrl()…

Could you help me please?




this._getAccessTokenUrl() parse this._baseSite + this._accessTokenUrl

But the endpoint URL of is, the authorize URL is oauth/authorize and the access token URL is

   * Base url to be used for constructing
   * google oauth urls.
   * @attribute baseUrl
   * @return {String}
  get baseUrl () {
    return ''

   * Relative url to be used for redirecting
   * user.
   * @attribute authorizeUrl
   * @return {String} [description]
  get authorizeUrl () {
    return 'oauth/authorize'

   * Relative url to be used for exchanging
   * access token.
   * @attribute accessTokenUrl
   * @return {String}
  get accessTokenUrl () {
    return ''

Authorize URL will be:
And Access Token URL will be (incorrect):

It’s impossible to add Bitly in provider of Ally, could you help me please?