Skip to content

[Major change proposal] Decoupling google-signin and google-signin-aware #156

@agektmr

Description

@agektmr

Hi,

I use Google Sign-In in my implementation of Polymer shop which I'm requesting a pull. Though I was suggested to use this google-signin component, I'm reluctant to do so for some reasons:

  1. google-signin contains both view and logic (google-signin-aware). While I agree it's intuitive to use a single component to show a Google Sign-In button, there are use cases where only logic is needed.
  2. google-signin-aware can handle multiple of itself. It's natural consequence if you assume to put multiple Google Sign-In buttons in a single page, but why is it needed? I only see it as an effort to resolve contradiction when putting multiple google-signin buttons.
  3. There is an event for notifying successful authorization, but no events for authentication exists.
  4. Though auth status changes can be propagated through events, there is no way to associate a user action to a successful sign-in with resulting id_token being passed to the invoker.

Here's my proposal:

  1. Make AuthEngine as google-signin-aware itself and add iron-meta as a behavior so google-signin components can refer to a single google-signin-aware in a page. (This means implementer needs to put both google-signin-aware and google-signin in the same page.)
  2. google-signin-aware-success event means "authorization" succeeded. Make it google-signin-aware-authz-success and add google-signin-aware-authn-success to indicate "authentication" success.
  3. Return a promise on signIn() invocation. That way resolving function can receive result object and pass id_token or auth code to the server.

Let me know what you think.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions