Skip to content

Passport strategy for authenticating with Atlassian (Jira) using OAuth 2.

License

Notifications You must be signed in to change notification settings

jsarafajr/passport-atlassian-oauth2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

passport-atlassian-oauth2

Build Status Known Vulnerabilities

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

The MIT License

Copyright (c) 2019 Yevhenii Baraniuk

About

Passport strategy for authenticating with Atlassian (Jira) using OAuth 2.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •