| OLD | NEW |
| 1 <link rel="import" href="../polymer/polymer.html"> | 1 <link rel="import" href="../polymer/polymer.html"> |
| 2 <link rel="import" href="google-signin-aware.html"> | 2 <link rel="import" href="google-signin-aware.html"> |
| 3 <link rel="import" href="../iron-icon/iron-icon.html"> | 3 <link rel="import" href="../iron-icon/iron-icon.html"> |
| 4 <link rel="import" href="../iron-icons/iron-icons.html"> | 4 <link rel="import" href="../iron-icons/iron-icons.html"> |
| 5 <link rel="import" href="../font-roboto/roboto.html"> | 5 <link rel="import" href="../font-roboto/roboto.html"> |
| 6 <link rel="import" href="../google-apis/google-js-api.html"> | 6 <link rel="import" href="../google-apis/google-js-api.html"> |
| 7 <link rel="import" href="../paper-ripple/paper-ripple.html"> | 7 <link rel="import" href="../paper-ripple/paper-ripple.html"> |
| 8 <link rel="import" href="../paper-material/paper-material.html"> | 8 <link rel="import" href="../paper-material/paper-material.html"> |
| 9 <link rel="import" href="../iron-flex-layout/classes/iron-flex-layout.html"> | 9 <link rel="import" href="../iron-flex-layout/classes/iron-flex-layout.html"> |
| 10 <link rel="import" href="google-icons.html"> | 10 <link rel="import" href="google-icons.html"> |
| 11 | 11 |
| 12 <dom-module id="google-signin"> | 12 <dom-module id="google-signin"> |
| 13 <link rel="import" type="css" href="google-signin.css"> | 13 <link rel="import" type="css" href="google-signin.css"> |
| 14 <template> | 14 <template> |
| 15 <google-signin-aware id="aware" | 15 <google-signin-aware id="aware" |
| 16 app-package-name="{{appPackageName}}" | 16 app-package-name="{{appPackageName}}" |
| 17 client-id="{{clientId}}" | 17 client-id="{{clientId}}" |
| 18 cookie-policy="{{cookiePolicy}}" | 18 cookie-policy="{{cookiePolicy}}" |
| 19 request-visible-actions="{{requestVisibleActions}}" | 19 request-visible-actions="{{requestVisibleActions}}" |
| 20 hosted-domain="{{hostedDomain}}" |
| 21 offline="{{offline}}" |
| 22 offline-always-prompt="{{offlineAlwaysPrompt}}" |
| 20 scopes="{{scopes}}" | 23 scopes="{{scopes}}" |
| 21 signed-in="{{signedIn}}" | 24 signed-in="{{signedIn}}" |
| 22 is-authorized="{{isAuthorized}}" | 25 is-authorized="{{isAuthorized}}" |
| 23 need-additional-auth="{{needAdditionalAuth}}" | 26 need-additional-auth="{{needAdditionalAuth}}" |
| 24 has-plus-scopes="{{hasPlusScopes}}"></google-signin-aware> | 27 has-plus-scopes="{{hasPlusScopes}}"></google-signin-aware> |
| 25 <template is="dom-if" if="{{raised}}"> | 28 <template is="dom-if" if="{{raised}}"> |
| 26 <paper-material id="shadow" class="fit" elevation="2" animated></paper-mat
erial> | 29 <paper-material id="shadow" class="fit" elevation="2" animated></paper-mat
erial> |
| 27 </template> | 30 </template> |
| 28 <div id="button" | 31 <div id="button" |
| 29 class$="[[_computeButtonClass(height, width, theme, signedIn, _brand, need
AdditionalAuth)]]"> | 32 class$="[[_computeButtonClass(height, width, theme, signedIn, _brand, need
AdditionalAuth)]]"> |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 137 | 140 |
| 138 The `scopes` attribute allows you to specify which scope permissions are require
d | 141 The `scopes` attribute allows you to specify which scope permissions are require
d |
| 139 (e.g do you want to allow interaction with the Google Drive API). Many APIs also | 142 (e.g do you want to allow interaction with the Google Drive API). Many APIs also |
| 140 need to be enabled in the Google Developers Console before you can use them. | 143 need to be enabled in the Google Developers Console before you can use them. |
| 141 | 144 |
| 142 The `requestVisibleActions` attribute is necessary if you want to write app | 145 The `requestVisibleActions` attribute is necessary if you want to write app |
| 143 activities (https://developers.google.com/+/web/app-activities/) on behalf of | 146 activities (https://developers.google.com/+/web/app-activities/) on behalf of |
| 144 the user. Please note that this attribute is only valid in combination with the | 147 the user. Please note that this attribute is only valid in combination with the |
| 145 plus.login scope (https://www.googleapis.com/auth/plus.login). | 148 plus.login scope (https://www.googleapis.com/auth/plus.login). |
| 146 | 149 |
| 150 The `offline` attribute allows you to get an auth code which your server can |
| 151 redeem for an offline access token |
| 152 (https://developers.google.com/identity/sign-in/web/server-side-flow). |
| 153 You can also set `offline-always-prompt` instead of `offline` to ensure that you
r app |
| 154 will re-prompt the user for offline access and generate a working `refresh_token
` |
| 155 even if they have already granted offline access to your app in the past. |
| 156 |
| 147 Use label properties to customize prompts. | 157 Use label properties to customize prompts. |
| 148 | 158 |
| 149 The button can be styled in using the `height`, `width`, and `theme` attributes. | 159 The button can be styled in using the `height`, `width`, and `theme` attributes. |
| 150 These attributes help you follow the Google+ Sign-In button branding guidelines | 160 These attributes help you follow the Google+ Sign-In button branding guidelines |
| 151 (https://developers.google.com/+/branding-guidelines). | 161 (https://developers.google.com/+/branding-guidelines). |
| 152 | 162 |
| 153 The `google-signin-success` event is triggered when a user successfully authenti
cates | 163 The `google-signin-success` event is triggered when a user successfully authenti
cates |
| 154 and `google-signed-out` is triggered when user signeds out. | 164 and `google-signed-out` is triggered when user signs out. |
| 155 You can also use `isAuthorized` attribute to observe user's authentication state
. | 165 You can also use `isAuthorized` attribute to observe user's authentication state
. |
| 156 | 166 |
| 157 Additional events, such as `google-signout-attempted` are | 167 Additional events, such as `google-signout-attempted` are |
| 158 triggered when the user attempts to sign-out and successfully signs out. | 168 triggered when the user attempts to sign-out and successfully signs out. |
| 159 | 169 |
| 170 When requesting offline access, the `google-signin-offline-success` event is |
| 171 triggered when the user successfully consents with offline support. |
| 172 |
| 160 The `google-signin-necessary` event is fired when scopes requested via | 173 The `google-signin-necessary` event is fired when scopes requested via |
| 161 google-signin-aware elements require additional user permissions. | 174 google-signin-aware elements require additional user permissions. |
| 162 | 175 |
| 163 #### Testing | 176 #### Testing |
| 164 | 177 |
| 165 By default, the demo accompanying this element is setup to work on localhost wit
h | 178 By default, the demo accompanying this element is setup to work on localhost wit
h |
| 166 port 8080. That said, you *should* update the `clientId` to your own one for | 179 port 8080. That said, you *should* update the `clientId` to your own one for |
| 167 any apps you're building. See the Google Developers Console | 180 any apps you're building. See the Google Developers Console |
| 168 (https://console.developers.google.com) for more info. | 181 (https://console.developers.google.com) for more info. |
| 169 | 182 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 190 * @event google-signin-necessary | 203 * @event google-signin-necessary |
| 191 */ | 204 */ |
| 192 | 205 |
| 193 /** | 206 /** |
| 194 * Fired when signed in, and scope has been authorized | 207 * Fired when signed in, and scope has been authorized |
| 195 * @param {Object} result Authorization result. | 208 * @param {Object} result Authorization result. |
| 196 * @event google-signin-aware-success | 209 * @event google-signin-aware-success |
| 197 */ | 210 */ |
| 198 | 211 |
| 199 /** | 212 /** |
| 213 * Fired when an offline authorization is successful. |
| 214 * @event google-signin-offline-success |
| 215 * @param {Object} detail |
| 216 * @param {string} detail.code The one-time authorization code from Google. |
| 217 * Your application can exchange this for an `access_token` and `refresh
_token` |
| 218 */ |
| 219 |
| 220 /** |
| 200 * Fired when this scope is not authorized | 221 * Fired when this scope is not authorized |
| 201 * @event google-signin-aware-signed-out | 222 * @event google-signin-aware-signed-out |
| 202 */ | 223 */ |
| 203 properties: { | 224 properties: { |
| 204 /** | 225 /** |
| 205 * App package name for android over-the-air installs. | 226 * App package name for android over-the-air installs. |
| 206 * See the relevant [docs](https://developers.google.com/+/web/signin/an
droid-app-installs) | 227 * See the relevant [docs](https://developers.google.com/+/web/signin/an
droid-app-installs) |
| 207 */ | 228 */ |
| 208 appPackageName: { | 229 appPackageName: { |
| 209 type: String, | 230 type: String, |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 */ | 301 */ |
| 281 labelSignin: { | 302 labelSignin: { |
| 282 type: String, | 303 type: String, |
| 283 value: '' | 304 value: '' |
| 284 }, | 305 }, |
| 285 | 306 |
| 286 _labelSignin: { | 307 _labelSignin: { |
| 287 type: String, | 308 type: String, |
| 288 computed: '_computeSigninLabel(labelSignin, width, _brand)' | 309 computed: '_computeSigninLabel(labelSignin, width, _brand)' |
| 289 }, | 310 }, |
| 311 |
| 290 /** | 312 /** |
| 291 * An optional label for the sign-out button. | 313 * An optional label for the sign-out button. |
| 292 */ | 314 */ |
| 293 labelSignout: { | 315 labelSignout: { |
| 294 type: String, | 316 type: String, |
| 295 value: 'Sign out' | 317 value: 'Sign out' |
| 296 }, | 318 }, |
| 297 | 319 |
| 298 /** | 320 /** |
| 299 * If true, the button will be styled with a shadow. | 321 * If true, the button will be styled with a shadow. |
| 300 */ | 322 */ |
| 301 raised: { | 323 raised: { |
| 302 type: Boolean, | 324 type: Boolean, |
| 303 value: false | 325 value: false |
| 304 }, | 326 }, |
| 305 | 327 |
| 306 /** | 328 /** |
| 307 * The app activity types you want to write on behalf of the user | 329 * The app activity types you want to write on behalf of the user |
| 308 * (e.g http://schemas.google.com/AddActivity) | 330 * (e.g http://schemas.google.com/AddActivity) |
| 309 */ | 331 */ |
| 310 requestVisibleActions: { | 332 requestVisibleActions: { |
| 311 type: String, | 333 type: String, |
| 312 value: '' | 334 value: '' |
| 313 }, | 335 }, |
| 314 | 336 |
| 315 /** | 337 /** |
| 338 * The Google Apps domain to which users must belong to sign in. |
| 339 * See the relevant [docs](https://developers.google.com/identity/sign-i
n/web/reference) for more information. |
| 340 */ |
| 341 hostedDomain: { |
| 342 type: String, |
| 343 value: '' |
| 344 }, |
| 345 |
| 346 /** |
| 347 * Allows for offline `access_token` retrieval during the signin process
. |
| 348 */ |
| 349 offline: { |
| 350 type: Boolean, |
| 351 value: false |
| 352 }, |
| 353 |
| 354 /** |
| 355 * Forces a re-prompt, even if the user has already granted offline |
| 356 * access to your application in the past. You only need one of |
| 357 * `offline` and `offlineAlwaysPrompt`. |
| 358 */ |
| 359 offlineAlwaysPrompt: { |
| 360 type: Boolean, |
| 361 value: false |
| 362 }, |
| 363 |
| 364 /** |
| 316 * The scopes to provide access to (e.g https://www.googleapis.com/auth/
drive) | 365 * The scopes to provide access to (e.g https://www.googleapis.com/auth/
drive) |
| 317 * and should be space-delimited. | 366 * and should be space-delimited. |
| 318 */ | 367 */ |
| 319 scopes: { | 368 scopes: { |
| 320 type: String, | 369 type: String, |
| 321 value: '' | 370 value: '' |
| 322 }, | 371 }, |
| 323 | 372 |
| 324 /** | 373 /** |
| 325 * The theme to use for the button. | 374 * The theme to use for the button. |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 481 | 530 |
| 482 _signOutKeyPress: function (e) { | 531 _signOutKeyPress: function (e) { |
| 483 if (e.which == 13 || e.keyCode == 13 || e.which == 32 || e.keyCode == 32
) { | 532 if (e.which == 13 || e.keyCode == 13 || e.which == 32 || e.keyCode == 32
) { |
| 484 e.preventDefault(); | 533 e.preventDefault(); |
| 485 this.signOut(); | 534 this.signOut(); |
| 486 } | 535 } |
| 487 } | 536 } |
| 488 }); | 537 }); |
| 489 }()); | 538 }()); |
| 490 </script> | 539 </script> |
| OLD | NEW |