diff --git a/LANGUAGES.md b/LANGUAGES.md index e7c44c55..0a0c2389 100644 --- a/LANGUAGES.md +++ b/LANGUAGES.md @@ -30,7 +30,7 @@ | lt | Lithuanian | | no | Norwegian (Bokmal) | | pl | Polish | -| pt | Portuguese | +| pt_br | Portuguese (Brazil) | | pt_pt | Portuguese (Portugal) | | ro | Romanian | | ru | Russian | diff --git a/README.md b/README.md index 23740eb6..5ecadccb 100644 --- a/README.md +++ b/README.md @@ -68,17 +68,17 @@ Localized versions of the widget are available through the CDN. To use a localiz localized JS library instead of the default library: ```html - - + + ``` where `{LANGUAGE_CODE}` is replaced by the code of the language you want. For example, the French version of the library is available at -`https://www.gstatic.com/firebasejs/ui/3.5.1/firebase-ui-auth__fr.js`. The list of available +`https://www.gstatic.com/firebasejs/ui/3.5.2/firebase-ui-auth__fr.js`. The list of available languages and their respective language codes can be found at [LANGUAGES.md](LANGUAGES.md). Right-to-left languages also require the right-to-left version of the stylesheet, available at -`https://www.gstatic.com/firebasejs/ui/3.5.1/firebase-ui-auth-rtl.css`, instead of the default +`https://www.gstatic.com/firebasejs/ui/3.5.2/firebase-ui-auth-rtl.css`, instead of the default stylesheet. The supported right-to-left languages are Arabic (ar), Farsi (fa), and Hebrew (iw). ### Option 2: npm Module diff --git a/changelog.txt b/changelog.txt index e69de29b..6e5e2396 100644 --- a/changelog.txt +++ b/changelog.txt @@ -0,0 +1,2 @@ +fixed - Improves the error message when outdated email link is used for email link sign in and `forceSameDevice` is enabled. +fixed - Fixes the wrong language code for Portuguese (Brazilian). \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 99b4d8ba..17489495 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -71,9 +71,9 @@ const DEFAULT_LOCALE = 'en'; // The list of all locales that are supported. const ALL_LOCALES = ['ar-XB', 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'en-GB', 'en-XA', 'es-419', 'es', 'fa', 'fi', 'fil', 'fr', 'hi', 'hr', 'hu', - 'id', 'it', 'iw', 'ja', 'ko', 'lt', 'lv', 'nl', 'no', 'pl', 'pt-PT', 'pt', - 'ro', 'ru', 'sk', 'sl', 'sr', 'sv', 'th', 'tr', 'uk', 'vi', 'zh-CN', - 'zh-TW']; + 'id', 'it', 'iw', 'ja', 'ko', 'lt', 'lv', 'nl', 'no', 'pl', 'pt-PT', + 'pt-BR', 'ro', 'ru', 'sk', 'sl', 'sr', 'sv', 'th', 'tr', 'uk', 'vi', + 'zh-CN', 'zh-TW']; // Default arguments to pass into Closure Compiler. const COMPILER_DEFAULT_ARGS = { diff --git a/javascript/widgets/handler/emaillinksignincallback.js b/javascript/widgets/handler/emaillinksignincallback.js index fe6d6585..c5288158 100644 --- a/javascript/widgets/handler/emaillinksignincallback.js +++ b/javascript/widgets/handler/emaillinksignincallback.js @@ -75,6 +75,7 @@ firebaseui.auth.widget.handler.handleEmailLinkSignInCallback = function( var forceSameDevice = urlBuilder.getForceSameDevice(); var anonymousUid = urlBuilder.getAnonymousUid(); var providerId = urlBuilder.getProviderId(); + var isNewDevice = !firebaseui.auth.storage.hasEmailForSignIn(app.getAppId()); var email = opt_email || firebaseui.auth.storage.getEmailForSignIn( sessionId, app.getAppId()); var pendingCredential = firebaseui.auth.storage.getEncryptedPendingCredential( @@ -133,7 +134,7 @@ firebaseui.auth.widget.handler.handleEmailLinkSignInCallback = function( var checkActionCodeAndGetUser = function() { var anonymousUserPromise = goog.Promise.resolve(null); - if ((anonymousUid && !email) || (!email && forceSameDevice)) { + if ((anonymousUid && isNewDevice) || (isNewDevice && forceSameDevice)) { // Anonymous user with different device flow or regular sign in flow with // same device requirement on different device. anonymousUserPromise = goog.Promise.reject( @@ -169,15 +170,23 @@ firebaseui.auth.widget.handler.handleEmailLinkSignInCallback = function( app, component, email, link, credential, /** @type {?firebase.User} */ (user)); } else { - component.dispose(); - // On email confirmation, call this handler again with - // skipCodeCheck set to true. - firebaseui.auth.widget.handler.handle( - firebaseui.auth.widget.HandlerName.EMAIL_LINK_CONFIRMATION, + if (forceSameDevice) { + component.dispose(); + firebaseui.auth.widget.handler.handle( + firebaseui.auth.widget.HandlerName.DIFFERENT_DEVICE_ERROR, app, - container, - link, - firebaseui.auth.widget.handler.completeEmailConfirmation_); + container); + } else { + component.dispose(); + // On email confirmation, call this handler again with + // skipCodeCheck set to true. + firebaseui.auth.widget.handler.handle( + firebaseui.auth.widget.HandlerName.EMAIL_LINK_CONFIRMATION, + app, + container, + link, + firebaseui.auth.widget.handler.completeEmailConfirmation_); + } } }, onError)); diff --git a/javascript/widgets/handler/emaillinksignincallback_test.js b/javascript/widgets/handler/emaillinksignincallback_test.js index 95a640ed..3792b8cb 100644 --- a/javascript/widgets/handler/emaillinksignincallback_test.js +++ b/javascript/widgets/handler/emaillinksignincallback_test.js @@ -959,6 +959,66 @@ function testHandleEmailLinkSignInCallback_expiredActionCodeError() { } +function testHandleEmailLinkSignInCallback_oldLinkClicked() { + // Test when old email link is clicked, code expired error should be + // displayed. In this case, the email is stored with new session ID which is + // different from the session ID in the old link. + var expectedError = {'code': 'auth/expired-action-code'}; + var email = passwordAccount.getEmail(); + var link = generateSignInLink('OLD_SESSIONID', null, null, true); + setupEmailLinkSignIn('NEW_SESSIONID', email); + + firebaseui.auth.widget.handler.handleEmailLinkSignInCallback( + app, container, link); + assertBlankPage(); + + // Simulate expired error code. + var waitForCheckActionCode = testAuth.assertCheckActionCode( + ['ACTION_CODE'], + null, + expectedError); + return waitForCheckActionCode.then(function() { + delayForBusyIndicatorAndAssertIndicatorShown(); + return testAuth.process(); + }).then(function() { + assertBusyIndicatorHidden(); + // Provider sign-in page should be rendered with error in info bar. + assertProviderSignInPage(); + assertInfoBarMessage( + firebaseui.auth.widget.handler.common.getErrorMessage(expectedError)); + }); +} + + +function testHandleEmailLinkSignInCallback_sessionMismatch() { + var email = passwordAccount.getEmail(); + var link = generateSignInLink('NEW_SESSIONID', null, null, true); + setupEmailLinkSignIn('OLD_SESSIONID', email); + + firebaseui.auth.widget.handler.handleEmailLinkSignInCallback( + app, container, link); + assertBlankPage(); + + var waitForCheckActionCode = testAuth.assertCheckActionCode( + ['ACTION_CODE'], + function() { + return { + 'operation': 'EMAIL_SIGNIN' + }; + }); + return waitForCheckActionCode.then(function() { + delayForBusyIndicatorAndAssertIndicatorShown(); + return testAuth.process(); + }).then(function() { + assertBusyIndicatorHidden(); + assertDifferentDeviceErrorPage(); + // Clicking dismiss button should redirect to the first page. + clickSecondaryLink(); + assertProviderSignInPage(); + }); +} + + function testHandleEmailLinkSignInCallback_signInError() { var email = passwordAccount.getEmail(); var link = generateSignInLink('SESSIONID'); diff --git a/package-lock.json b/package-lock.json index 6f0ef1b0..76125af2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "firebaseui", - "version": "3.4.1", + "version": "3.5.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/translations/iw.xtb b/translations/iw.xtb index 4a33f542..5d747d8e 100644 --- a/translations/iw.xtb +++ b/translations/iw.xtb @@ -145,7 +145,7 @@ מאיוט כניסה איפוס הסיסמה -שלח +שליחה נפאל טוקלאו פרטי הכניסה שנבחרו לספק האימות אינם נתמכים. diff --git a/translations/pt-BR.xtb b/translations/pt-BR.xtb new file mode 100644 index 00000000..472ffbca --- /dev/null +++ b/translations/pt-BR.xtb @@ -0,0 +1,459 @@ + +E-mail de login enviado +Código de verificação inválido +São Vicente +O link de email é inválido. Esse problema pode acontecer se o link de e-mail expirou ou já foi usado para fazer login. Reinicie o processo de login. +Este número de telefone já foi usado muitas vezes +ui_flow +Letônia +Salvar +Singapura +Faça login novamente para realizar essa ação +Filipinas +Romênia +Ilhas Geórgia do Sul e Sandwich do Sul +Ok +Itália +Líbano +Guiana +Guatemala +Insira um número de telefone válido. +Ao tocar em "Verificar", você concorda com nossos Termos de Serviço e a Política de Privacidade. Um SMS poderá ser enviado e tarifas de mensagens e de dados poderão ser cobradas. +Digite sua senha +Concluir +Haiti +Caso não tenha solicitado a alteração do seu e-mail de login, é possível que outra pessoa esteja tentando acessar sua conta. Altere sua senha agora. +Ilhas Heard e McDonald +Seu endereço IP está emitindo muitas solicitações de contas. Tente novamente em alguns minutos. +Sri Lanka +Faça login com a sua nova conta +Chade +Reenviar o código em +Bielorrússia +O endereço de e-mail não corresponde a uma conta existente. +Talvez você receba um SMS quando tocar em "". Taxas de mensagens e dados podem ser aplicáveis. +Santa Helena +Barbados +Se tocar em "Continuar", você afirma que concorda com os Termos de Serviço +Armênia +Bósnia e Herzegovina +Ilhas Cook +Código incorreto. Tente novamente. +Macau +Olá, +Excluir conta +Insira o código de 6 dígitos enviado para +Siga as instruções enviadas para para recuperar sua senha. +Hungria +Suriname +Estados Unidos +São Bartolomeu +Montserrat +Senhas fortes têm pelo menos 6 caracteres e uma combinação de letras e números +Termos de Serviço +Sessão encerrada +Reino Unido +Ilhas Cayman +Moldávia +Autorize as permissões necessárias para fazer login no aplicativo +Malauí +Verificado. +Insira o número do seu telefone +GitHub +Política de Privacidade +Guam +Croácia +Lituânia +Malta +Cabo Verde +Macedônia +Conectado! +Convidado +Gana +O navegador usado não é compatível com o armazenamento na Web. Tente novamente em outro navegador. +Ocorreu um problema ao alterar seu e-mail de login.Se você tentar novamente e não conseguir redefini-lo, peça ajuda ao seu administrador. +Barein +Irã +Verificando se você não é um robô... +Este código não é mais válido. +Nova Caledônia +Mônaco +Seicheles +Não foi possível fazer o upgrade deste usuário anônimo. A credencial não anônima já está associada a uma conta de usuário diferente. +Você digitou a senha incorretamente várias vezes. Tente novamente em alguns minutos. +Segurança +Sua solicitação para redefinir a senha expirou ou o link já foi usado +Este código do país não é aceito. +Verifique se você digitou seu e-mail corretamente. +Twitter +Camboja +Portugal +Guiana Francesa +Ilhas Virgens Britânicas +Dispensar +Insira um número de telefone válido. +Este tipo de conta não é compatível com este app +O código da ação é inválido. Isso pode acontecer quando o código está incorreto ou já foi usado. +Este código expirou. +Kosovo +Uzbequistão +Ilhas Aland +Sua sessão expirou. Tente novamente. +Verificar +África do Sul +Digite seu endereço de e-mail para continuar +Um e-mail de login com mais instruções foi enviado para . Verifique seu e-mail para concluir o login. +Digite sua senha +Criar conta +Afeganistão +Ao tocar em "", você indica que está de acordo com os . +Canadá +Dinamarca +Áustria +Os e-mails não coincidem +Sudão do Sul +Iêmen +Guiné-Bissau +Arábia Saudita +Logotipo do app +Ilhas Virgens Americanas +Fazer login com o telefone +Indonésia +Inicialmente, você queria fazer login com o e-mail +Venezuela +Problemas com login? +Confirmar sua identidade +Dominica +Nova senha +Gabão +Você já usou o e-mail . Faça login com o para continuar. +Nova Zelândia +Mianmar [Birmânia] +Islândia +Etiópia +Cuba +França +China +Você já usou . Para conectar sua conta do com , basta fazer login com o link de e-mail abaixo. +Zâmbia +Cidade do Vaticano +Gâmbia +Concluído +Cancelar +Digite o nome da sua conta +Iraque +Vietnã +Endereço de e-mail inválido +Ilha Mayotte +Fazer login +Redefinir sua senha +Enviar +Nepal +Toquelau +Não há suporte para as credenciais selecionadas do provedor de autenticação. +Colômbia +Ao tocar em SALVAR, você indica que concordou com os +Burundi +Mauritânia +Twitter +Seu e-mail foi verificado +Papua-Nova Guiné +Salvar +Verificando... +Fazer login +Timor Leste +Djibuti +Código de 6 dígitos +Comores +O código de verificação não pode estar vazio. +O código da ação é inválido. Isso pode acontecer quando o código está incorreto ou já foi usado. +Kosovo +Tente estas soluções comuns: +Fazer login com +Tente abrir o link usando o mesmo dispositivo ou navegador que você usou para iniciar o processo de login. +Estônia +Facebook +Argentina +Ao continuar, você concorda com nossos Termos de Serviço e a Política de Privacidade. +Digite um novo endereço de e-mail +Desvincular +Guiné-Conacri +Suíça +Andorra +Problemas para receber e-mails? +Japão +Montenegro +Moçambique +O endereço de e-mail não corresponde a uma conta existente +Turquia +Tadjiquistão +República Popular Democrática do Laos +Telefone +Reenviar +Honduras +Níger +O endereço de e-mail não corresponde a uma conta existente +Jordânia +Siga as instruções enviadas para para recuperar sua senha +Fazer login com o e-mail +Rússia +O endereço de e-mail já está sendo usado por outra conta +Polônia +Israel +Erro encontrado +Número +Insira o reCAPTCHA. +Nicarágua +Burkina Fasso +Código incorreto. Tente novamente. +A sessão deste login expirou ou foi apagada. +Ilhas Turks e Caicos +Reenviar o código em +Verifique seu e-mail +Adicionar senha +El Salvador +Sérvia +Belize +para +Para conectar sua conta do com este e-mail, é necessário abrir o link no mesmo dispositivo ou navegador. +Suécia +São Martinho +Santa Lúcia +@string/app_name +Verifique seu e-mail +Sua solicitação para verificar o e-mail expirou ou o link já foi usado +Omã +Países Baixos Caribenhos +Endereço de e-mail atualizado +Fazer login com o Twitter +Número de telefone +Você já tem uma conta +Tailândia +Código incorreto. Tente novamente. +Principado de Liechtenstein +Editar nome +Tente abrir o link usando o mesmo dispositivo ou navegador que você usou para iniciar o processo de login. +Holanda +Guiné Equatorial +Austrália +Trinidad e Tobago +Digite seu nome +Ilha de Ascensão +Ocorreu um erro na rede. +Fazer login com o +Escolha a senha +Território Britânico do Oceano Índico +Uganda +Noruega +Este número de telefone já foi usado muitas vezes. +Eritreia +Ilhas Maurício +Ocorreu um erro. Tente novamente. +Senha +São Cristóvão +Voltar +Digite seu endereço de e-mail para continuar +Confirmar seu número de telefone +Libéria +Já existe uma conta com esse endereço de e-mail. +Madagascar +Cazaquistão +Fazendo login… +Panamá +Tonga +Ilhas Wallis e Futuna +Não foi possível atualizar seu endereço de e-mail +Você já usou para fazer login. Insira sua senha para essa conta. +Anguila +Este e-mail já está sendo usado por uma conta anônima. Redefina a senha para recuperá-lo. +República Dominicana +Jérsei +Recuperar a senha +Insira o código de seis dígitos enviado para ‎ +Ruanda +Insira o código de dígitos que enviamos +Este número de telefone já foi usado muitas vezes. +O e-mail fornecido é diferente do usado no login da sessão atual. +Desvincular conta +Verifique se você ainda tem espaço na sua caixa de entrada, além de outros problemas relacionados à configuração. +Paraguai +Argélia +Você digitou a senha incorretamente várias vezes. Tente novamente em alguns minutos. +Ilha Norfolk +O número de telefone foi verificado automaticamente +Para alterar sua senha, primeiro insira sua senha atual. +Voltar +Índia +Benin +Continuar +Faça login com a sua nova senha +Aruba +Luxemburgo +Ilhas Faroé +Kosovo +Bulgária +Você não poderá mais fazer login usando sua conta +Verifique sua conexão com a Internet. +Concluindo sua inscrição... +Talvez você receba um SMS quando tocar em . Taxas de mensagens e dados podem ser aplicáveis. +Vanuatu +Samoa Americana +Brasil +Continuar para +Suazilândia +Não foi possível enviar o código de redefinição de senha para o e-mail especificado. +Dispensar +Bélgica +Geórgia +Namíbia +E-mail de login enviado\n +Código enviado. +Reunião +Tente redefinir sua senha novamente +Continuar como convidado +Equador +Senegal +Botsuana +Micronésia +Hong Kong +Albânia +Seu endereço de e-mail de login foi alterado novamente para . +Camarões +Ilhas Svalbard e Jan Mayen +Ucrânia +Se as etapas acima não funcionarem, envie o e-mail novamente. Observação: isso desativará o link do e-mail anterior. +Turcomenistão +Jamaica +GitHub +Paquistão +Reenviar +Síria +E-mail +Próxima +Este código não é mais válido. +Fazer login com o Facebook +Confirmar e-mail +Nome e sobrenome +Granada +Saara Ocidental +Ocorreu um erro desconhecido. +Você já usou o e-mail para fazer login. Digite sua senha para essa conta. +Irlanda +República Democrática do Congo +Recuperar a senha +República do Congo +Continuar como convidado +San Marino +Chipre +Ilhas Salomão +Continuar com ? +Maldivas +São Tomé e Príncipe +Confirme seu e-mail para concluir o login +Eslovênia +Coreia do Sul +Lesoto +Fazer login com o telefone +Verifique seu e-mail novamente +Azerbaijão +Google +Link de e-mail inválido. +Termos de Serviço +Gibraltar +Tanzânia +Conta desvinculada +Saint-Pierre e Miquelon +Somália +Alemanha +Problemas para receber e-mails? +Quirguistão +Você já usou o e-mail para fazer login. Insira a senha dessa conta. +{plural_var,plural, =1{A senha não é forte o suficiente. Use pelo menos caractere e combine letras e números.}one{A senha não é forte o suficiente. Use pelo menos caractere e combine letras e números.}other{A senha não é forte o suficiente. Use pelo menos caracteres e combine letras e números.}} +Zimbábue +Siga as instruções enviadas para para recuperar sua senha. +Ocorreu um problema na verificação do seu número de telefone. +Novo dispositivo ou navegador detectado +República Tcheca +Tuvalu +Fazer login com o GitHub +Groenlândia +Líbia +Google +Quênia +Esta ação apagará todos os dados associados à sua conta e não poderá ser desfeita. Tem certeza que quer excluir sua conta? +Talvez você receba um SMS quando tocar em "Verificar". Taxas de mensagens e dados podem ser aplicáveis. +Bolívia +Porto Rico +Desvincular conta? +Ilha Christmas + +Obrigado, +Equipe do app +Para enviar os códigos de verificação, forneça um número de telefone para o destinatário. +Sudão +Bahamas +Costa do Marfim +Palau +Mongólia +Espanha +Costa Rica +Samoa +Mali +Catar +Uruguai +Egito +Ilhas Marshall +São Martinho Holandesa +Antígua e Barbuda +Ilhas Marianas do Norte +Ilhas Malvinas +Peru +Senha atual +Bem-vindo +Fiji +Quiribati +Taiwan +Serra Leoa +Verifique se o e-mail foi filtrado ou marcado como spam. +Verificando... +Martinica +Togo +Você já tem uma conta +O seu e-mail para login no app foi alterado +Veja como redefinir sua senha nas instruções enviadas para este e-mail +Nauro +Brunei +Chile +Polinésia Francesa +Bermudas +Niue +Guadalupe +Territórios Palestinos +Eslováquia +Guernsey +Nigéria +Coreia do Norte +Seu código de verificação é . +México +Butão +Ilha de Man +Malásia +Ilhas Coco (Keeling) +Se você ainda quiser conectar sua conta do , abra o link no mesmo dispositivo em que você iniciou o login. Caso contrário, toque em Continuar para fazer login neste dispositivo. +Inicialmente, você quis conectar o à sua conta de e-mail, mas abriu o link em um dispositivo diferente, em que você não está conectado. +Reenviar código em 0: +Marrocos +Bangladesh +Smartphone +Finlândia +Emirados Árabes Unidos +Senha +República Centro-Africana +Curaçao +Tunísia +Senha alterada +Grécia +Angola +Kuwait +O e-mail e a senha que você digitou não coincidem +