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

Add public token API to AppCheck #5033

Merged
merged 9 commits into from
Jun 23, 2021
Merged

Add public token API to AppCheck #5033

merged 9 commits into from
Jun 23, 2021

Conversation

hsubox76
Copy link
Contributor

@hsubox76 hsubox76 commented Jun 16, 2021

Create public getToken() and onTokenChanged() methods.

Proposal (internal link):
go/app-check-sdk-get-token-3p-api

For docs reviewers:
The only public doc comments are in packages/firebase/index.d.ts

@changeset-bot
Copy link

changeset-bot bot commented Jun 16, 2021

🦋 Changeset detected

Latest commit: 99f0293

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 4 packages
Name Type
@firebase/app-check Minor
@firebase/app-check-types Minor
firebase Minor
@firebase/rules-unit-testing Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jun 16, 2021

Binary Size Report

Affected SDKs

  • @firebase/analytics

    Type Base (704fd41) Head (81b8e3e) Diff
    esm2017 ? 18.7 kB ? (?)
    main ? 24.2 kB ? (?)
    module ? 23.4 kB ? (?)
  • @firebase/api-documenter

    Type Base (704fd41) Head (81b8e3e) Diff
    main ? 3.72 kB ? (?)
  • @firebase/app

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 11.0 kB ? (?)
    esm2017 ? 9.81 kB ? (?)
    lite ? 8.95 kB ? (?)
    lite-esm2017 ? 7.93 kB ? (?)
    main ? 10.2 kB ? (?)
    module ? 11.0 kB ? (?)
    react-native ? 9.87 kB ? (?)
  • @firebase/app-check

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 22.3 kB ? (?)
    esm2017 ? 18.5 kB ? (?)
    main ? 22.3 kB ? (?)
    module ? 21.9 kB ? (?)
  • @firebase/auth

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 181 kB ? (?)
    main ? 181 kB ? (?)
    module ? 181 kB ? (?)
  • @firebase/component

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 8.33 kB ? (?)
    esm2017 ? 6.32 kB ? (?)
    main ? 8.67 kB ? (?)
    module ? 8.33 kB ? (?)
  • @firebase/database

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 296 kB ? (?)
    esm2017 ? 265 kB ? (?)
    main ? 299 kB ? (?)
    module ? 296 kB ? (?)
  • @firebase/database-compat

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 86.5 kB ? (?)
    main ? 103 kB ? (?)
    module ? 86.5 kB ? (?)
  • @firebase/database-exp

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 246 kB ? (?)
    main ? 278 kB ? (?)
    module ? 246 kB ? (?)
  • @firebase/firestore

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 284 kB ? (?)
    esm2017 ? 226 kB ? (?)
    main ? 531 kB ? (?)
    module ? 284 kB ? (?)
    react-native ? 227 kB ? (?)
  • @firebase/firestore-compat

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 28.9 kB ? (?)
    main ? 38.1 kB ? (?)
    module ? 28.9 kB ? (?)
    react-native ? 28.7 kB ? (?)
  • @firebase/firestore-exp

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 224 kB ? (?)
    main ? 510 kB ? (?)
    module ? 224 kB ? (?)
    react-native ? 224 kB ? (?)
  • @firebase/firestore-lite

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 72.5 kB ? (?)
    main ? 149 kB ? (?)
    module ? 72.5 kB ? (?)
    react-native ? 72.7 kB ? (?)
  • @firebase/firestore/bundle

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 290 kB ? (?)
    esm2017 ? 177 kB ? (?)
    main ? 527 kB ? (?)
    module ? 290 kB ? (?)
    react-native ? 177 kB ? (?)
  • @firebase/firestore/memory

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 216 kB ? (?)
    esm2017 ? 172 kB ? (?)
    main ? 325 kB ? (?)
    module ? 216 kB ? (?)
    react-native ? 172 kB ? (?)
  • @firebase/firestore/memory-bundle

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 224 kB ? (?)
    esm2017 ? 177 kB ? (?)
    main ? 322 kB ? (?)
    module ? 224 kB ? (?)
    react-native ? 177 kB ? (?)
  • @firebase/functions

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 10.7 kB ? (?)
    esm2017 ? 8.21 kB ? (?)
    main ? 11.1 kB ? (?)
    module ? 10.7 kB ? (?)
  • @firebase/installations

    Type Base (704fd41) Head (81b8e3e) Diff
    esm2017 ? 16.6 kB ? (?)
    main ? 22.2 kB ? (?)
    module ? 21.6 kB ? (?)
  • @firebase/logger

    Type Base (704fd41) Head (81b8e3e) Diff
    esm2017 ? 3.25 kB ? (?)
    main ? 5.38 kB ? (?)
    module ? 4.65 kB ? (?)
  • @firebase/messaging

    Type Base (704fd41) Head (81b8e3e) Diff
    esm2017 ? 26.2 kB ? (?)
    main ? 34.9 kB ? (?)
    module ? 34.4 kB ? (?)
  • @firebase/performance

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 27.7 kB ? (?)
    esm2017 ? 25.9 kB ? (?)
    main ? 28.0 kB ? (?)
    module ? 27.7 kB ? (?)
  • @firebase/polyfill

    Type Base (704fd41) Head (81b8e3e) Diff
    main ? 747 B ? (?)
    module ? 705 B ? (?)
  • @firebase/remote-config

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 22.4 kB ? (?)
    esm2017 ? 17.4 kB ? (?)
    main ? 23.0 kB ? (?)
    module ? 22.4 kB ? (?)
  • @firebase/rules-unit-testing

    Type Base (704fd41) Head (81b8e3e) Diff
    main ? 14.8 kB ? (?)
  • @firebase/storage

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 63.4 kB ? (?)
    esm2017 ? 54.6 kB ? (?)
    main ? 63.8 kB ? (?)
    module ? 63.4 kB ? (?)
  • @firebase/storage-compat

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 10.2 kB ? (?)
    main ? 29.1 kB ? (?)
    module ? 10.2 kB ? (?)
  • @firebase/storage-exp

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 51.5 kB ? (?)
    main ? 52.6 kB ? (?)
    module ? 51.5 kB ? (?)
  • @firebase/util

    Type Base (704fd41) Head (81b8e3e) Diff
    browser ? 21.2 kB ? (?)
    esm2017 ? 20.0 kB ? (?)
    main ? 25.8 kB ? (?)
    module ? 21.2 kB ? (?)
  • @firebase/webchannel-wrapper

    Type Base (704fd41) Head (81b8e3e) Diff
    esm2017 ? 43.2 kB ? (?)
    main ? 50.7 kB ? (?)
    module ? 44.6 kB ? (?)
  • firebase

    Click to show 16 binary size changes.
    Type Base (704fd41) Head (81b8e3e) Diff
    firebase-analytics.js ? 35.7 kB ? (?)
    firebase-app-check.js ? 22.7 kB ? (?)
    firebase-app.js ? 21.9 kB ? (?)
    firebase-auth.js ? 177 kB ? (?)
    firebase-database.js ? 187 kB ? (?)
    firebase-firestore.js ? 336 kB ? (?)
    firebase-firestore.memory.js ? 271 kB ? (?)
    firebase-functions.js ? 10.9 kB ? (?)
    firebase-installations.js ? 19.3 kB ? (?)
    firebase-messaging.js ? 40.9 kB ? (?)
    firebase-performance-standalone.es2017.js ? 73.4 kB ? (?)
    firebase-performance-standalone.js ? 49.8 kB ? (?)
    firebase-performance.js ? 38.3 kB ? (?)
    firebase-remote-config.js ? 36.9 kB ? (?)
    firebase-storage.js ? 41.5 kB ? (?)
    firebase.js ? 893 kB ? (?)

Test Logs

@google-oss-bot
Copy link
Contributor

google-oss-bot commented Jun 16, 2021

Size Analysis Report

Affected Products

Diffs between base commit (704fd41) and head commit (81b8e3e) are too large (519,572 characters) to display.

Please check below links to see details from the original test log.

packages/app-check-types/index.d.ts Outdated Show resolved Hide resolved
packages/app-check-interop-types/index.d.ts Outdated Show resolved Hide resolved
packages/app-check/src/api.test.ts Outdated Show resolved Hide resolved
packages/app-check/src/api.ts Outdated Show resolved Hide resolved
packages/app-check/src/internal-api.ts Outdated Show resolved Hide resolved
@Feiyang1 Feiyang1 assigned hsubox76 and unassigned Feiyang1 Jun 17, 2021
@hsubox76 hsubox76 assigned Feiyang1 and unassigned hsubox76 and kevinthecheung Jun 17, 2021
const app = getFakeApp({ automaticDataCollectionEnabled: true });
const fakePlatformLoggingProvider = getFakePlatformLoggingProvider();
stub(internalApi, 'getToken').resolves({
token: 'a-token-string',
Copy link
Member

Choose a reason for hiding this comment

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

It should be the dummy token in this case, right? Can you add a comment here to clarify?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Clarified.

@@ -264,7 +277,11 @@ function createTokenRefresher(

// getToken() always resolves. In case the result has an error field defined, it means the operation failed, and we should retry.
if (result.error) {
throw result.error;
if (onError) {
onError(result.error);
Copy link
Member

Choose a reason for hiding this comment

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

This is redundant. Notifying listeners are already handled in getToken() which calls notifyTokenListeners().

Here we should always throw to trigger retries. (Just revert the changes)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Reverted.

@Feiyang1 Feiyang1 assigned hsubox76 and unassigned Feiyang1 Jun 23, 2021
@hsubox76 hsubox76 merged commit 870dd5e into master Jun 23, 2021
@hsubox76 hsubox76 deleted the ch-appcheck-tokenapi branch June 23, 2021 22:22
@google-oss-bot google-oss-bot mentioned this pull request Jun 28, 2021
@firebase firebase locked and limited conversation to collaborators Jul 24, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants