@julienbenac/ally-orange
is an Orange driver for AdonisJS Ally.
First of all, if you haven't already done so, you need to install and configure the @adonisjs/ally
package to implement social authentication in your AdonisJS application.
node ace add @adonisjs/ally
After going through the first step, you can now download the @julienbenac/ally-orange
package.
npm install @julienbenac/ally-orange
Next, configure the package by running the following command. This command will update the .env
and start/env.ts
files with the environment variables.
node ace configure @julienbenac/ally-orange
Then register the service inside the configuration file config/ally.ts
.
// config/ally.ts
import env from '#start/env'
import { defineConfig } from '@adonisjs/ally'
import { orange } from '@julienbenac/ally-orange'
const allyConfig = defineConfig({
orange: orange({
clientId: env.get('ORANGE_CLIENT_ID'),
clientSecret: env.get('ORANGE_CLIENT_SECRET'),
callbackUrl: env.get('ORANGE_CALLBACK_URL'),
}),
})
Finally, you can use the Orange driver in your AdonisJS application as below.
// start/routes.ts
import router from '@adonisjs/core/services/router'
router.get('/orange', ({ response }) => {
return response.send('<a href="/orange/redirect"> Login with Orange </a>')
})
router.get('/orange/redirect', ({ ally }) => {
// You can use or override default scopes
return ally.use('orange').redirect()
})
router.get('/orange/callback', async ({ ally }) => {
const orange = ally.use('orange')
if (orange.accessDenied()) {
return 'Access was denied.'
}
if (orange.hasError()) {
return orange.getError()
}
if (orange.stateMisMatch()) {
return 'State mismatch.'
}
return await orange.user()
})
This section provides instructions for setting up the development environment and contributing to the package. The project uses Git hooks managed by Husky to automate parts of the development workflow, helping maintain code quality and consistency.
To set up the development environment, install the project dependencies as follows.
npm install
Taze is a modern CLI tool that helps you keep your dependencies up to date by checking for newer versions and updating them according to your configuration. The project's taze.config.js
file configures Taze with the following settings:
- Enables interactive mode, allowing you to select which dependencies to update.
- Automatically writes the updated versions to the
package.json
. - Automatically installs the updated dependencies after updating.
- Checks and updates peer dependencies along with regular dependencies.
npm run taze
To publish a new version of the package, run the following command which automates the entire release process. The script handles incrementing the version number, building the production-ready code, publishing the package, and creating a Git tag for the release, ensuring a consistent and error-free workflow.
npm run release