Package Exports
- passport-atlassian-oauth2
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (passport-atlassian-oauth2) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
passport-atlassian-oauth2
Passport strategy for authenticating with Atlassian services using OAuth 2 3LO (three-legged OAuth).
NOTE: Currently, only Jira supports Atlassian Oauth 2 authorization code grants (3LO).
Install
$ npm install passport-atlassian-oauth2
Usage
Create Application
Before using passport-atlassian-oauth2
you must register an application within App Management. If you don't have one follow "Enabling OAuth 2.0 authorization code grants" instructions from Jira documentation page.
⚠️Important: "User identity API" should be enabled in App Management for this strategy to work if you're interested in getting profile information such as name, url, etc. Otherwise, pass skipUserProfile: true
in strategy constructor options.
Configure Strategy
The client ID and secret obtained when creating an application are supplied as options when creating the strategy.
const AtlassianStrategy = require('passport-atlassian-oauth2');
passport.use(new AtlassianStrategy({
clientID: '<ATLASSIAN_CLIENT_ID>',
clientSecret: '<ATLASSIAN_CLIENT_SECRET>',
callbackURL: 'http://localhost:8080/auth/atlassian/callback',
scope: 'offline_access read:jira-user',
},
(accessToken, refreshToken, profile, cb) => {
// optionally save profile data to db
done(null, profile);
}
));
See complete Express.js example here.
Sample Profile
{
"id": "552048:ccc138d6-d39f-1337-93ca-888ff2s05d9e",
"displayName": "Yevhenii Baraniuk",
"email": "yevhenii@example.com",
"photo": "https://avatar-cdn.atlassian.com/21kfjvu62hmkvo3ikdlqo48755?by=hash",
"provider": "atlassian",
"accessibleResources": [
{
"id": "3942d640-b74e-11e8-96f8-529269fb1459",
"name": "awesome-jira",
"url": "https://awesome-jira.atlassian.net",
"scopes": ["read:jira-user"],
"avatarUrl": "https://site-admin-avatar-cdn.prod.public.atl-paas.net/avatars/240/trophy.png"
},
{
"id": "eff705b1-5cd8-40d1-ac46-9a9516cbc527",
"name": "super-product",
"url": "https://super-product.atlassian.net",
"scopes": ["read:jira-user"],
"avatarUrl": "https://site-admin-avatar-cdn.prod.public.atl-paas.net/avatars/240/cup.png"
}
]
}
License
Copyright (c) 2019 Yevhenii Baraniuk