Skip to content
This repository has been archived by the owner on Jan 6, 2023. It is now read-only.

Add session-based auth flow #1278

Closed
wants to merge 1 commit into from

Conversation

binal-7span
Copy link
Contributor

@binal-7span binal-7span commented Sep 12, 2019

This PR contains the session start and session stop API.

Closes #1263, see https://github.com/directus/api/wiki/Session-Auth-Flow

@binal-7span binal-7span self-assigned this Sep 12, 2019
@binal-7span binal-7span added the enhancement New feature or request label Sep 12, 2019

class AuthService extends AbstractService
{
const AUTH_VALIDATION_ERROR_CODE = 114;

const TOKEN_CIPHER_METHOD = 'aes-128-ctr';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you explain what made you choose for this cipher method specifically? I'd like to document all this info as best I can

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We require the cipher method which can be used for encryption as well as decryption. And this is one of them.

if($cookie){
$token = $this->generateCookieToken($user);
}else{
$needs2FA = $tfa_enforced && $user->get2FASecret() == null;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this mean that looking in with the cookie doesn't have support for 2fa?

);

if(isset($responseData['data']) && isset($responseData['data']['token'])){
$response = $response->withAddedHeader('Set-Cookie', "access_token=".$responseData['data']['token']);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add HttpOnly to this to make sure JS can't read it?

Also, should we add Expires to this so we can set "auto logout" based on the value in directus_settings?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will do it.

*/
public function stopSession(Request $request, Response $response)
{
$response = $response->withoutHeader('Set-Cookie');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this remove the cookie from the browser or will it only respond once without the cookie?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It only responds without the cookie. But if the user tried to use that cookie then the server will throw the error.

@rijkvanzanten rijkvanzanten changed the title Fix #1263[Rethink Auth Flow] Add session-based auth flow Sep 12, 2019
@rijkvanzanten
Copy link
Member

@bjgajjar Could you maybe provide a tiny working example in browser-javascript?

I've tried the following, but it doesn't work:

const url = "http://local.api.com";

async function fetchMovies() {
  await fetch(url + '/_/auth/sessions/start', {
    method: 'POST',
    body: JSON.stringify({email: 'admin@example.com', password: 'password'}),
    credentials: 'include',
    headers: {
      'Content-Type': 'application/json'
    }
  });

  const res = await fetch(url + '/_/items/movies', { credentials: 'include' });
  console.log(res.status);
  // => 403
}

fetchMovies();

The first request does receive a access_token cookie (maybe we should call that session), but it doesn't persist over to the second request.

@binal-7span
Copy link
Contributor Author

@rijkvanzanten - Can you please try this code in #1280? It's working over there.

I would say we can close this PR as #1280 contain kill session too :)

@rijkvanzanten
Copy link
Member

Closed in favor of #1280

@binal-7span binal-7span deleted the fix/1263 branch November 5, 2019 06:00
samvasko pushed a commit to samvasko/api that referenced this pull request Nov 25, 2019
samvasko pushed a commit to samvasko/api that referenced this pull request Nov 25, 2019
* Fix trailing comma's

* New Crowdin translations (directus#1876)

* New translations index.json (Turkish)

* New translations index.json (Turkish)

* New translations index.json (Swedish)

* New translations index.json (Swedish)

* New translations index.json (Swedish)

* New translations index.json (Swedish)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (German)

* New translations index.json (Turkish)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Arabic)

* New translations index.json (Arabic)

* New translations index.json (Arabic)

* New translations index.json (Ukrainian)

* New translations index.json (Ukrainian)

* Fix issue where i18n would merge messages in non initialized languages (directus#1880)

* Attempt to fix rendering of translated fields (directus#1879)

* Fix files interface value structure (directus#1573) (directus#1848)

* Reimagine files interface (directus#1881)

* Use m2m logic for files interface

* Update add-new-item flow

* Add file preview

* Remove unused file

* Set good defaults for interface options

* Add support for accept option

* Add translations for interface options

* Change option defaults + add some padding

* Fix defaults + items check in files

* Only diff root level in o2m

Fixes directus#1882

* Render icon preview for single file correctly

* Update items.vue (directus#1868)

* Update items.vue

Populate fields selected from view query

* Add id if missing from fields view query

* Update hardcoded primary key name

* Allow multiple custom items in checkboxes (directus#1893)

* Update dependencies

* Add support for multiple custom values in checkboxes

* styling an honor “allow_other”

* Fix issue where PK wouldn't be fetched if other column contains pk name

* Show image thumbs in item select modal (directus#1895)

* Fix Invalid prop: type check failed for prop "collection"

* Fix some warnings

* Fix some warnings

* Fix some warnings

* Update Popup.vue

* More fixes

* More fixes

* Update meta.json

* Update meta.json

* fix offset/padding for permission popover

ideally this popover should be on the right, but we need to deal with the cell padding first

* Show thumbnails when files interface

Tweak the interface so it shows thumbnails in the first column when the collection is `directus_files`

* Use translation string + fix whitespace

* Don't render revert button / diff when there are no changes

Fixes directus#1301

* Fix languages notice check

* Fix languages notice check

Fixes directus#1473

* Fix last used url on logout

Fixes directus#1487

* Use generate id instead of filename for key

Fixes directus#1531

* Issue fix directus#1865 (directus#1942)

* Added to.redirectedFrom check to persist previous URL (directus#1940)

* Fix directus#1278 (directus#1941)

* fix directus#1851 (directus#1943)

* Fix #1746 (directus#1946)

* Stage empty value as null

Fixes directus#1905

* Increase debounce time

Fixes directus#1906

* Tweak item select styles in Safari

* Add max width to table preview columns

Fixes directus#1937

* Set max width for m2m as well

Ref directus#1937

* revert field note position and update field label styling (directus#1919)

* fix offset/padding for permission popover

ideally this popover should be on the right, but we need to deal with the cell padding first

* Set autoHide to false (directus#1907)

* Translation interface fields blank fix (directus#1902)

* Fix for blank input-boxes in translation interface

* Property access with lodash-get

* Applied Filter for hidden_browse (directus#1908)

* Fix regression of directus#1879 (directus#1914)

* Update diffing to exclude JSON (directus#1918)

Fixes directus#1899

* hover effect and clickable zone

* resolve whitespace issue

* resolve whitespace issue

* revert back to inline notes

* remove extra space below textarea interface

* Increase contrast of notes

* Proposal: a change to the language used for single-file field's options (directus#1915)

* fix offset/padding for permission popover

ideally this popover should be on the right, but we need to deal with the cell padding first

* Set autoHide to false (directus#1907)

* Translation interface fields blank fix (directus#1902)

* Fix for blank input-boxes in translation interface

* Property access with lodash-get

* Applied Filter for hidden_browse (directus#1908)

* single file selector options language

* Fix regression of directus#1879 (directus#1914)

* Update diffing to exclude JSON (directus#1918)

Fixes directus#1899

* add deselect as a second option, before delete. add deselect to lang\en-US

* add deselect click binding

* Add file deletion on option

* Revert unrelated changes

* Issue fix directus#1951 (directus#1953)

* Issue fix directus#1954 (directus#1955)

* Fix directus#1840 [M2M relation with string primary keys issue] (directus#1956)

* Add 2fa login and user setting (directus#1775)

* Add otp to login

* Add 2fa interface

* Finish implementing 2fa-secret interface

* Change otp input type to text

* Only show qr code when generating a 2fa secret

* Render otp field on a second page, only if user is missing it

* Created 2FA Activation Route, login redirection

* Remove unused redirect

* Store api url in case user reloads 2fa activation page

* Don't track page if there is not current user id

* Add locales for 2fa

* Modified 2fa-activation page to ask for otp, prettified page

* Add error-checking to 2fa activation page

* Remove commented-out code from login

* Fix issue sometimes params.fields is an Array (directus#1963)

* Fix directus#1736 [Undo changes  not working on WYSIWYG] (directus#1964)

* add russian language to list (directus#1972)

* New Crowdin translations (directus#1948)

* New translations index.json (Afrikaans)

* New translations index.json (Korean)

* New translations index.json (Ukrainian)

* New translations index.json (Turkish)

* New translations index.json (Swedish)

* New translations index.json (Spanish)

* New translations index.json (Serbian (Cyrillic))

* New translations index.json (Russian)

* New translations index.json (Romanian)

* New translations index.json (Portuguese, Brazilian)

* New translations index.json (Portuguese)

* New translations index.json (Polish)

* New translations index.json (Norwegian)

* New translations index.json (Malay)

* New translations index.json (Japanese)

* New translations index.json (Arabic)

* New translations index.json (Italian)

* New translations index.json (Hungarian)

* New translations index.json (Hebrew)

* New translations index.json (Greek)

* New translations index.json (German)

* New translations index.json (French)

* New translations index.json (Finnish)

* New translations index.json (Dutch)

* New translations index.json (Danish)

* New translations index.json (Czech)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Simplified)

* New translations index.json (Catalan)

* New translations index.json (Vietnamese)

* New translations index.json (Afrikaans)

* New translations index.json (Korean)

* New translations index.json (Ukrainian)

* New translations index.json (Turkish)

* New translations index.json (Swedish)

* New translations index.json (Spanish)

* New translations index.json (Serbian (Cyrillic))

* New translations index.json (Russian)

* New translations index.json (Romanian)

* New translations index.json (Portuguese, Brazilian)

* New translations index.json (Portuguese)

* New translations index.json (Polish)

* New translations index.json (Norwegian)

* New translations index.json (Malay)

* New translations index.json (Japanese)

* New translations index.json (Arabic)

* New translations index.json (Italian)

* New translations index.json (Hungarian)

* New translations index.json (Hebrew)

* New translations index.json (Greek)

* New translations index.json (German)

* New translations index.json (French)

* New translations index.json (Finnish)

* New translations index.json (Dutch)

* New translations index.json (Danish)

* New translations index.json (Czech)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Simplified)

* New translations index.json (Catalan)

* New translations index.json (Vietnamese)

* New translations index.json (Portuguese, Brazilian)

* New translations index.json (German)

* Strict value check for displaying active item when value is 0 (directus#1974)

* Get src from computed property (directus#1976)

* fixes directus#1969

* auto-prefix

* Fix directus#1695 [Resolve Save as Copy: error if there is a mandatory Many-to-one field] (directus#1977)

* Preserve selected file info onchange of language (directus#1971)

* Revert "Preserve selected file info onchange of language (directus#1971)" (directus#1980)

This reverts commit 2335ed6.

* Fix directus#1742 (directus#1945)

* Fix directus#1742

* Alt attribute added in img tag

* directus#1802 : Finish file progress after API response (directus#1984)

* New translations index.json (Greek) (directus#1986)

* Fix merge conflict in package-lock (directus#1981)

* Update packages and re-gen package-lock

* Bump version to 7.10.0
samvasko pushed a commit to samvasko/api that referenced this pull request Nov 25, 2019
* Fix trailing comma's

* New Crowdin translations (directus#1876)

* New translations index.json (Turkish)

* New translations index.json (Turkish)

* New translations index.json (Swedish)

* New translations index.json (Swedish)

* New translations index.json (Swedish)

* New translations index.json (Swedish)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (German)

* New translations index.json (Turkish)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Traditional)

* New translations index.json (Arabic)

* New translations index.json (Arabic)

* New translations index.json (Arabic)

* New translations index.json (Ukrainian)

* New translations index.json (Ukrainian)

* Fix issue where i18n would merge messages in non initialized languages (directus#1880)

* Attempt to fix rendering of translated fields (directus#1879)

* Fix files interface value structure (directus#1573) (directus#1848)

* Reimagine files interface (directus#1881)

* Use m2m logic for files interface

* Update add-new-item flow

* Add file preview

* Remove unused file

* Set good defaults for interface options

* Add support for accept option

* Add translations for interface options

* Change option defaults + add some padding

* Fix defaults + items check in files

* Only diff root level in o2m

Fixes directus#1882

* Render icon preview for single file correctly

* Update items.vue (directus#1868)

* Update items.vue

Populate fields selected from view query

* Add id if missing from fields view query

* Update hardcoded primary key name

* Allow multiple custom items in checkboxes (directus#1893)

* Update dependencies

* Add support for multiple custom values in checkboxes

* styling an honor “allow_other”

* Fix issue where PK wouldn't be fetched if other column contains pk name

* Show image thumbs in item select modal (directus#1895)

* Fix Invalid prop: type check failed for prop "collection"

* Fix some warnings

* Fix some warnings

* Fix some warnings

* Update Popup.vue

* More fixes

* More fixes

* Update meta.json

* Update meta.json

* fix offset/padding for permission popover

ideally this popover should be on the right, but we need to deal with the cell padding first

* Show thumbnails when files interface

Tweak the interface so it shows thumbnails in the first column when the collection is `directus_files`

* Use translation string + fix whitespace

* Don't render revert button / diff when there are no changes

Fixes directus#1301

* Fix languages notice check

* Fix languages notice check

Fixes directus#1473

* Fix last used url on logout

Fixes directus#1487

* Use generate id instead of filename for key

Fixes directus#1531

* Issue fix directus#1865 (directus#1942)

* Added to.redirectedFrom check to persist previous URL (directus#1940)

* Fix directus#1278 (directus#1941)

* fix directus#1851 (directus#1943)

* Fix #1746 (directus#1946)

* Stage empty value as null

Fixes directus#1905

* Increase debounce time

Fixes directus#1906

* Tweak item select styles in Safari

* Add max width to table preview columns

Fixes directus#1937

* Set max width for m2m as well

Ref directus#1937

* revert field note position and update field label styling (directus#1919)

* fix offset/padding for permission popover

ideally this popover should be on the right, but we need to deal with the cell padding first

* Set autoHide to false (directus#1907)

* Translation interface fields blank fix (directus#1902)

* Fix for blank input-boxes in translation interface

* Property access with lodash-get

* Applied Filter for hidden_browse (directus#1908)

* Fix regression of directus#1879 (directus#1914)

* Update diffing to exclude JSON (directus#1918)

Fixes directus#1899

* hover effect and clickable zone

* resolve whitespace issue

* resolve whitespace issue

* revert back to inline notes

* remove extra space below textarea interface

* Increase contrast of notes

* Proposal: a change to the language used for single-file field's options (directus#1915)

* fix offset/padding for permission popover

ideally this popover should be on the right, but we need to deal with the cell padding first

* Set autoHide to false (directus#1907)

* Translation interface fields blank fix (directus#1902)

* Fix for blank input-boxes in translation interface

* Property access with lodash-get

* Applied Filter for hidden_browse (directus#1908)

* single file selector options language

* Fix regression of directus#1879 (directus#1914)

* Update diffing to exclude JSON (directus#1918)

Fixes directus#1899

* add deselect as a second option, before delete. add deselect to lang\en-US

* add deselect click binding

* Add file deletion on option

* Revert unrelated changes

* Issue fix directus#1951 (directus#1953)

* Issue fix directus#1954 (directus#1955)

* Fix directus#1840 [M2M relation with string primary keys issue] (directus#1956)

* Add 2fa login and user setting (directus#1775)

* Add otp to login

* Add 2fa interface

* Finish implementing 2fa-secret interface

* Change otp input type to text

* Only show qr code when generating a 2fa secret

* Render otp field on a second page, only if user is missing it

* Created 2FA Activation Route, login redirection

* Remove unused redirect

* Store api url in case user reloads 2fa activation page

* Don't track page if there is not current user id

* Add locales for 2fa

* Modified 2fa-activation page to ask for otp, prettified page

* Add error-checking to 2fa activation page

* Remove commented-out code from login

* Fix issue sometimes params.fields is an Array (directus#1963)

* Fix directus#1736 [Undo changes  not working on WYSIWYG] (directus#1964)

* add russian language to list (directus#1972)

* New Crowdin translations (directus#1948)

* New translations index.json (Afrikaans)

* New translations index.json (Korean)

* New translations index.json (Ukrainian)

* New translations index.json (Turkish)

* New translations index.json (Swedish)

* New translations index.json (Spanish)

* New translations index.json (Serbian (Cyrillic))

* New translations index.json (Russian)

* New translations index.json (Romanian)

* New translations index.json (Portuguese, Brazilian)

* New translations index.json (Portuguese)

* New translations index.json (Polish)

* New translations index.json (Norwegian)

* New translations index.json (Malay)

* New translations index.json (Japanese)

* New translations index.json (Arabic)

* New translations index.json (Italian)

* New translations index.json (Hungarian)

* New translations index.json (Hebrew)

* New translations index.json (Greek)

* New translations index.json (German)

* New translations index.json (French)

* New translations index.json (Finnish)

* New translations index.json (Dutch)

* New translations index.json (Danish)

* New translations index.json (Czech)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Simplified)

* New translations index.json (Catalan)

* New translations index.json (Vietnamese)

* New translations index.json (Afrikaans)

* New translations index.json (Korean)

* New translations index.json (Ukrainian)

* New translations index.json (Turkish)

* New translations index.json (Swedish)

* New translations index.json (Spanish)

* New translations index.json (Serbian (Cyrillic))

* New translations index.json (Russian)

* New translations index.json (Romanian)

* New translations index.json (Portuguese, Brazilian)

* New translations index.json (Portuguese)

* New translations index.json (Polish)

* New translations index.json (Norwegian)

* New translations index.json (Malay)

* New translations index.json (Japanese)

* New translations index.json (Arabic)

* New translations index.json (Italian)

* New translations index.json (Hungarian)

* New translations index.json (Hebrew)

* New translations index.json (Greek)

* New translations index.json (German)

* New translations index.json (French)

* New translations index.json (Finnish)

* New translations index.json (Dutch)

* New translations index.json (Danish)

* New translations index.json (Czech)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Simplified)

* New translations index.json (Catalan)

* New translations index.json (Vietnamese)

* New translations index.json (Portuguese, Brazilian)

* New translations index.json (German)

* Strict value check for displaying active item when value is 0 (directus#1974)

* Get src from computed property (directus#1976)

* fixes directus#1969

* auto-prefix

* Fix directus#1695 [Resolve Save as Copy: error if there is a mandatory Many-to-one field] (directus#1977)

* Preserve selected file info onchange of language (directus#1971)

* Revert "Preserve selected file info onchange of language (directus#1971)" (directus#1980)

This reverts commit 2335ed6.

* Fix directus#1742 (directus#1945)

* Fix directus#1742

* Alt attribute added in img tag

* directus#1802 : Finish file progress after API response (directus#1984)

* New translations index.json (Greek) (directus#1986)

* Fix merge conflict in package-lock (directus#1981)

* Update packages and re-gen package-lock

* Fix directus#1990 [Sorting Preview interface issue] (directus#1997)

* Fix directus#1995 [Color interface:Use transparent instead of black as default] (directus#1999)

* Fix directus#1995 [Color interface: NULL color suggestion to use trasperent instead of black]

* Set Null

* Dont display custom div if the color is not set

* Revert "Fix directus#1990 [Sorting Preview interface issue] (directus#1997)" (directus#2000)

This reverts commit 1c151de.

* Fix directus#1966 [Using VExtDisplay to render interface data in Cards] (directus#2001)

* Fix directus#1966

* Using ExtDisplay in Cards

* Fix directus#1920 (directus#1983)

* Preserve selected file info onchange of language

* In created event called API and fetch and load file data

* Translate interface change

* Error handling

* Fix directus#2012 [Manual sorting in collection listing does not work] (directus#2013)

* Fix directus#1990 (directus#2002)

* New Crowdin translations (directus#2010)

* New translations index.json (Polish)

* New translations index.json (Catalan)

* New translations index.json (French)

* Fix directus#1209 [M2M relation with directus_collections cant be saved] (directus#2028)

* Fix directus#2016 [Calendar layout is not showing event as per date] (directus#2031)

* Fix directus#2016 [Card layout is not showing event as per date]

* Fix directus#2016 [Card layout is not showing event as per date]

* Remove empty row in O2M (directus#2020)

* Allow password managers to target field Id (directus#2039)

* Fix directus#2021 [Display SSO auth errors] (directus#2022)

* Display SSO auth errors.

* Blank alt tag for image

* Fixes visual glitches on table & error blocks (directus#2023)

* Fix directus#1237 (directus#2041)

* Fix 2027 (directus#2034)

* Update Feature_request.md

* Fixed typo in language files + Norwegian translation (directus#2043)

* Allow password managers to target field Id

* Small typo

* Fixed typo in all languages

* Rough norwegian translation

* New Crowdin translations (directus#2052)

* New translations index.json (Norwegian)

* New translations index.json (Norwegian)

* New translations index.json (Dutch)

* New translations index.json (Polish)

* New translations index.json (Italian)

* New translations index.json (Ukrainian)

* New translations index.json (Turkish)

* New translations index.json (Swedish)

* New translations index.json (Spanish)

* New translations index.json (Serbian (Cyrillic))

* New translations index.json (Russian)

* New translations index.json (Romanian)

* New translations index.json (Portuguese, Brazilian)

* New translations index.json (Portuguese)

* New translations index.json (Malay)

* New translations index.json (Korean)

* New translations index.json (Japanese)

* New translations index.json (Hungarian)

* New translations index.json (Catalan)

* New translations index.json (Hebrew)

* New translations index.json (Greek)

* New translations index.json (German)

* New translations index.json (Finnish)

* New translations index.json (Danish)

* New translations index.json (Czech)

* New translations index.json (Chinese Traditional)

* New translations index.json (Chinese Simplified)

* New translations index.json (Arabic)

* New translations index.json (Afrikaans)

* New translations index.json (Dutch)

* New translations index.json (Norwegian)

* New translations index.json (French)

* New translations index.json (Vietnamese)

* New translations index.json (Norwegian)

* New translations index.json (Norwegian)

* New translations index.json (Portuguese, Brazilian) (directus#2054)

* Fix directus#1248 (directus#2057)

* New Crowdin translations (directus#2055)

* New translations index.json (Portuguese, Brazilian)

* New translations index.json (Dutch)

* directus#2051 : values were not staging in edit translation interface (directus#2062)

* Use random ID for icon toggle to scope them

Fixes directus#2061

* New Crowdin translations (directus#2065)

* New translations index.json (Chinese Simplified)

* New translations index.json (Chinese Simplified)

* New translations index.json (Chinese Simplified)

* New translations index.json (Chinese Simplified)

* New translations index.json (Chinese Simplified)

* New translations index.json (Chinese Simplified)

* New translations index.json (Chinese Simplified)

* New translations index.json (Chinese Simplified)

* New translations index.json (Chinese Simplified)

* New translations index.json (German)

* New translations index.json (Ukrainian)

* Adds a button to quick navigate to collection settings (directus#2063)

* Adds a button to quick navigate to collection settings

* Moved the button to right side

* New Crowdin translations (directus#2075)

* New translations index.json (Czech)

* New translations index.json (Czech)

* New translations index.json (Czech)

* New translations index.json (Chinese Simplified)

* Bump version
samvasko pushed a commit to samvasko/api that referenced this pull request Nov 25, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rethink Auth Flow
2 participants