Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

attemptSilentLogin feature #121

Merged
merged 3 commits into from
Aug 7, 2020
Merged

attemptSilentLogin feature #121

merged 3 commits into from
Aug 7, 2020

Conversation

adamjmcgrath
Copy link
Contributor

@adamjmcgrath adamjmcgrath commented Aug 4, 2020

Description

Add attemptSilentLogin MW and attemptSilentLogin config option to attempt login with prompt=none the first time a user visits a route.

References

https://auth0.com/docs/api-auth/tutorials/silent-authentication

Testing

  • This change adds test coverage for new/changed/fixed functionality

Checklist

  • I have added documentation for new/changed functionality in this PR or in auth0.com/docs
  • All active GitHub checks for tests, formatting, and security are passing
  • The correct base branch is being used, if not master

@adamjmcgrath adamjmcgrath added the review:medium Medium review label Aug 4, 2020
@adamjmcgrath adamjmcgrath requested review from panva and a team August 4, 2020 11:19
lib/context.js Outdated Show resolved Hide resolved
const cancelSilentLoginAttempts = (req, res) =>
res.cookie(COOKIE_NAME, true, {
httpOnly: true,
secure: req.secure,
Copy link
Contributor

Choose a reason for hiding this comment

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

this ought to take into consideration an explicit configuration, similar to what we do in appSession.js

secure: typeof cookieConfig.secure === 'boolean'
          ? cookieConfig.secure
          : req.secure

Copy link
Contributor Author

Choose a reason for hiding this comment

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

middleware/auth.js Outdated Show resolved Hide resolved
prompt: 'none',
});
}

async login(options = {}) {
let { config, req, res, next, transient } = weakRef(this);
next = cb(next).once();
Copy link
Contributor Author

Choose a reason for hiding this comment

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

TODO: Clear cookie on login

Copy link
Contributor Author

Choose a reason for hiding this comment

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

const debug = require('../lib/debug');
const COOKIES = require('../lib/cookies');

const COOKIE_NAME = 'silentLoginAttempted';
Copy link
Contributor Author

Choose a reason for hiding this comment

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

skipSilentLogin

Copy link
Contributor Author

Choose a reason for hiding this comment

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

# Conflicts:
#	middleware/requiresAuth.js
@adamjmcgrath adamjmcgrath requested a review from panva August 7, 2020 10:51
@adamjmcgrath adamjmcgrath merged commit bb2e36a into beta-2 Aug 7, 2020
@adamjmcgrath adamjmcgrath deleted the attempt-silent-login branch August 7, 2020 12:15
adamjmcgrath added a commit that referenced this pull request Aug 13, 2020
* attemptSilentLogin feature

* Resume silent login after successful login so that users try silent login again after their session's expire
adamjmcgrath added a commit that referenced this pull request Sep 17, 2020
* Update beta version

* Initial commit of Beta 2 branch

Co-authored-by: Filip Skokan <panva.ip@gmail.com>

* Add PKCE tests and fix multiple servers in tests (#110)

* [SDK-1714] [SDK-1723] Session cookie checks (#111)

* Refactor the tests a little to use a server
* simplify test
* tests for unordered cookie chunks
* Test format changes for transient handler
* Update lib/transientHandler.js

Co-authored-by: Filip Skokan <panva.ip@gmail.com>

* [SDK-1715] Configuration and API updates (#109)

* Simplify the config tests, test more with less code
* Validate config fixes and tests
* Add comment, update tests
* `Issuer.discover` only takes a fully qualified url
* Simpler scope assertion and keep all config tests in same file
* Let auth server set default for response_type: code
* clientSecret is required for HS* algs regardless of response_type

Co-authored-by: Filip Skokan <panva.ip@gmail.com>

* [SDK-1712] Test token set (#108)

* Add tests for TokenSet
* Refactor the tests a little
* Split up code flow tests
* Add tests for access token expiry

* Add Prettier for style formatting (#112)

* Add prettier

* Run `prettier --write .`

* [SDK-1716] Add tests for claim* MW (#113)

* Add tests for claim* MW

* Fix tests

* Add some tests for session duration behaviour

* Revert "Add some tests for session duration behaviour"

This reverts commit e3ce510.

* Add some tests for session duration behaviour (#114)

* Add test for passing custom param to logout (#115)

* [SDK-1721] Auto generated docs (#117)

* Auto generated docs with typedoc

* fix lgtm

* Fix auth params

* Fix incorrect import of `requiresAuth` (#118)

* Add TROUBLESHOOTING and update debug logging (#120)

* Add TROUBLESHOOTING and update debug logging

* fix tests

* Update lib/context.js

Co-authored-by: Filip Skokan <panva.ip@gmail.com>

Co-authored-by: Filip Skokan <panva.ip@gmail.com>

* attemptSilentLogin feature (#121)

* attemptSilentLogin feature

* Resume silent login after successful login so that users try silent login again after their session's expire

* `postLogoutRedirectUri` isn't always a URI and login needs a check for `response_type` (#123)

* [SDK-1877] Add refresh method to access token (#124)

* Add refresh method to access token

* Add method to fetch userinfo

* Add refresh example to docs

* Not all refresh token grants get a new refresh token back (eg non rotating) and remove unneeded opts

* Scope all cookies (skipSilentLogin, transient and appSession) to the app session cookie path and domain config (if specified) (#125)

* [SDK-1722] Architecture (#128)

* Default Login flow docs

* Add logout

* add link from readme

* [SDK-1876] [SDK-1726] Add samples and smoke tests (#127)

* Add samples and smoke tests

* Fix CI

* Make the test clearer that discovery alg is ignored (#130)

* Make the test clearer that discovery alg is ignored

* Add test to show "none" disallowed for idTokenSigningAlg

* Disallow "none" in any case (#131)

* Disallow "none" in any case

* Fix puppeteer in CircleCI https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-puppeteer-on-circleci

* Revert "Fix puppeteer in CircleCI https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#running-puppeteer-on-circleci"

This reverts commit c0fd31e

* use active lts

* [SDK-1914] Add a migration guide for v1 to v2 (#129)

* Add a migration guide for v1 to v2

* Apply suggestions from code review

Co-authored-by: Filip Skokan <panva.ip@gmail.com>

* Updates per PR comments

Co-authored-by: Filip Skokan <panva.ip@gmail.com>

* Release 2.0.0-beta.0 (#132)

* Release 2.0.0-beta.0

* Ignore docs from lint

* Fixes the numbering on examples (#136)

* chore: update jose and openid-client (#134)

Co-authored-by: Filip Skokan <panva.ip@gmail.com>
Co-authored-by: David Patrick <david.patrick@auth0.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
review:medium Medium review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants