[social] deprecate facebook
This commit is contained in:
parent
d8303d8c83
commit
6be7927898
|
@ -4,6 +4,10 @@
|
|||
<Icon :v="providerOptions.icon || provider" set="b"
|
||||
:class="[providerOptions.icon && providerOptions.icon.endsWith('.png') ? 'mx-1 invertible' : '']"/>
|
||||
{{ providerOptions.name }}
|
||||
<button v-if="providerOptions.deprecated" class="badge bg-light text-dark border border-warning" @click="depreciationNotice(providerOptions.deprecated)">
|
||||
<Icon v="exclamation-triangle"/>
|
||||
<T>user.login.deprecated</T>
|
||||
</button>
|
||||
</span>
|
||||
<span v-if="connection === undefined">
|
||||
<template v-if="providerOptions.instanceRequired">
|
||||
|
@ -35,7 +39,7 @@
|
|||
</span>
|
||||
<br class="d-md-none"/>
|
||||
<a :href="(providerOptions.redirectViaHome ? `${homeUrl}/api/user/social-redirect/${provider}/${config.locale}` : `/api/connect/${provider}`) + (providerOptions.instanceRequired ? '?instance=' + connection.name.split('@')[1] : '')"
|
||||
class="badge bg-light text-dark border">
|
||||
class="badge bg-light text-dark border">
|
||||
<Icon v="sync"/>
|
||||
<T>user.socialConnection.refresh</T>
|
||||
</a>
|
||||
|
@ -49,31 +53,34 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
provider: { required: true },
|
||||
providerOptions: { required: true },
|
||||
connection: {},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
disconnecting: false,
|
||||
homeUrl: process.env.HOME_URL,
|
||||
formShown: false,
|
||||
export default {
|
||||
props: {
|
||||
provider: { required: true },
|
||||
providerOptions: { required: true },
|
||||
connection: {},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
disconnecting: false,
|
||||
homeUrl: process.env.HOME_URL,
|
||||
formShown: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async disconnect() {
|
||||
await this.$confirm(this.$t('user.socialConnection.disconnectConfirm', {email: this.$user().email}), 'danger');
|
||||
|
||||
this.disconnecting = true;
|
||||
try {
|
||||
const response = await this.$post(`/user/social-connection/${this.provider}/disconnect`);
|
||||
this.$emit('disconnected', response);
|
||||
} finally {
|
||||
this.disconnecting = false;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
async disconnect() {
|
||||
await this.$confirm(this.$t('user.socialConnection.disconnectConfirm', {email: this.$user().email}), 'danger');
|
||||
|
||||
this.disconnecting = true;
|
||||
try {
|
||||
const response = await this.$post(`/user/social-connection/${this.provider}/disconnect`);
|
||||
this.$emit('disconnected', response);
|
||||
} finally {
|
||||
this.disconnecting = false;
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
async depreciationNotice(link) {
|
||||
await this.$alert(this.$t('user.login.depreciationNotice', {link}), 'warning');
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<Icon :v="options.icon || provider" set="b"/>
|
||||
{{ options.name }}
|
||||
|
||||
<form :action="options.redirectViaHome ? `${homeUrl}/api/user/social-redirect/${provider}/${config.locale}` : `/api/connect/${provider}`"
|
||||
<form :action="link"
|
||||
v-if="options.instanceRequired" class="input-group my-2">
|
||||
<input type="text" name="instance" class="form-control" autofocus required ref="instance"
|
||||
:placeholder="$t('user.login.instancePlaceholder')">
|
||||
|
@ -19,8 +19,16 @@
|
|||
:class="[options.icon && options.icon.endsWith('.png') ? 'mx-1 invertible' : '']"/>
|
||||
{{ options.name }}
|
||||
</button>
|
||||
<a v-else :href="options.redirectViaHome ? `${homeUrl}/api/user/social-redirect/${provider}/${config.locale}` : `/api/connect/${provider}`"
|
||||
class="btn btn-outline-primary">
|
||||
<a v-else-if="options.deprecated" :href="link"
|
||||
class="btn btn-outline-secondary btn-sm"
|
||||
@click.prevent="depreciationNotice(options.deprecated)"
|
||||
>
|
||||
<Icon :v="options.icon || provider" set="b"/>
|
||||
{{ options.name }}
|
||||
</a>
|
||||
<a v-else :href="link"
|
||||
class="btn btn-outline-primary"
|
||||
>
|
||||
<Icon :v="options.icon || provider" set="b"/>
|
||||
{{ options.name }}
|
||||
</a>
|
||||
|
@ -38,11 +46,20 @@ export default {
|
|||
formShown: false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
link() {
|
||||
return this.options.redirectViaHome ? `${this.homeUrl}/api/user/social-redirect/${this.provider}/${this.config.locale}` : `/api/connect/${this.provider}`
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
showForm() {
|
||||
this.formShown = true;
|
||||
this.$nextTick(() => this.$refs.instance.focus());
|
||||
}
|
||||
},
|
||||
async depreciationNotice(link) {
|
||||
await this.$confirm(this.$t('user.login.depreciationNotice', {link}), 'warning');
|
||||
window.location.href = this.link;
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -497,6 +497,12 @@ user:
|
|||
Registering lets you manage your cards ({/@example=like this one}).
|
||||
passwordless: 'The website doesn''t store any passwords. {https://avris.it/blog/passwords-are-passé=More info.}'
|
||||
instancePlaceholder: 'Instance'
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Validate'
|
||||
invalid: 'Invalid code.'
|
||||
|
|
|
@ -421,6 +421,13 @@ user:
|
|||
Mit der Registrierung kannst du deine Visitenkarten verwalten ({/@example=wie diese}).
|
||||
passwordless: 'Die Website speichert keine Passwörter. {https://avris.it/blog/passwords-are-passé=Weitere Infos.}'
|
||||
instancePlaceholder: 'Instanz'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Validieren'
|
||||
invalid: 'Ungültiger Code.'
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
# We don't recommend using Facebook login
|
||||
|
||||
<small>2022-04-23 | [@andrea](/@andrea)</small>
|
||||
|
||||
We all know that Meta/Facebook is a company that couldn't give a shit about morality or users' privacy.
|
||||
But did you know they're also unfriendly towards developers and try to impose their prudish, conservative views on independent websites?
|
||||
|
||||
This morning they've disabled two apps of mine whose whole purpose was simply to let people log in to a website using their Facebook account.
|
||||
Nothing more, no actual dependency on Facebook, just the “log in with” button.
|
||||
|
||||
Why? One of them, [NakedAdventure](https://naked-adventure.eu/), is a map of nude beaches and contains small amounts of non-sexual nudity.
|
||||
The other, [OurSong](https://oursong.eurovote.eu/), is a harmless game where people vote for their favourite songs
|
||||
– but it's only accessible for members, so Facebook didn't like the fact that they cannot sniff around.
|
||||
They have blocked the apps without notice, making independent websites inaccessible for some users on a whim.
|
||||
|
||||
If they think it's okay to suddenly cut people off other websites just because there was some non-sexual nudity present
|
||||
or because they weren't able to snoop around, who knows if one day they won't block Pronouns.page because of the queer content?
|
||||
After all, in countries like Russia distributing information about LGBTQ+ issues is already considered adult content.
|
||||
|
||||
Users of Pronouns.page seem to dislike Facebook anyway – only 2.76% of you has login with Facebook set up
|
||||
(compared for example to 38,95% of people using login with Twitter).
|
||||
But to those who use it as their primary login option –
|
||||
**we strongly recommend setting up a different login method and ditching Facebook**.
|
|
@ -521,6 +521,12 @@ user:
|
|||
Registering lets you manage your cards ({/@example=like this one}).
|
||||
passwordless: 'The website doesn''t store any passwords. {https://avris.it/blog/passwords-are-passé=More info.}'
|
||||
instancePlaceholder: 'Instance'
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Validate'
|
||||
invalid: 'Invalid code.'
|
||||
|
|
|
@ -482,6 +482,13 @@ user:
|
|||
Registering lets you manage your cards ({/@example=like this one}).
|
||||
passwordless: 'The website doesn''t store any passwords. {https://avris.it/blog/passwords-are-passé=More info.}'
|
||||
instancePlaceholder: 'Instance'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Validate'
|
||||
invalid: 'Nevalida kodo.'
|
||||
|
|
|
@ -506,6 +506,13 @@ user:
|
|||
Registrarte te permite manejar tus tarjetas ({/@example=como esta}).
|
||||
passwordless: 'Este sitio web no guarda las contraseñas. {https://avris.it/blog/passwords-are-passé=Más información.}'
|
||||
instancePlaceholder: 'Instancia'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Validar'
|
||||
invalid: 'Código inválido.'
|
||||
|
|
|
@ -424,6 +424,13 @@ user:
|
|||
S’inscrire vous permet de gérer vos cartes ({/@example=comme celle-ci}).
|
||||
passwordless: 'Ce site ne stocke aucun mot de passe. {https://avris.it/blog/passwords-are-passé=Plus d’infos.}'
|
||||
instancePlaceholder: 'Instance'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Valider'
|
||||
invalid: 'Code invalide.'
|
||||
|
|
|
@ -405,6 +405,13 @@ user:
|
|||
Registrar-se te permite dirigir os cartões ({/@example=como esta}).
|
||||
passwordless: 'O site não grava qualquer senha. {https://avris.it/blog/passwords-are-passé=More info.}'
|
||||
instancePlaceholder: 'Instance' # TODO
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Validar'
|
||||
invalid: 'Código inválido.'
|
||||
|
|
|
@ -498,6 +498,13 @@ user:
|
|||
Registering lets you manage your cards ({/@example=like this one}).
|
||||
passwordless: 'The website doesn''t store any passwords. {https://avris.it/blog/passwords-are-passé=More info.}'
|
||||
instancePlaceholder: 'Instance'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Validate'
|
||||
invalid: 'Invalid code.'
|
||||
|
|
|
@ -426,6 +426,13 @@ user:
|
|||
ご登録いただいた方は、カードの設定を行うことができます。({/@example=カードの例}).
|
||||
passwordless: 'このウェブサイトはパスワードを保存しません。 {https://avris.it/blog/passwords-are-passé=詳細はこちら。}'
|
||||
instancePlaceholder: 'サーバー'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: '確認'
|
||||
invalid: '無効なコード'
|
||||
|
|
|
@ -495,6 +495,13 @@ user:
|
|||
등록하면 카드를 ({/@example=이렇게}) 관리할 수 있습니다.
|
||||
passwordless: '웹사이트는 비밀번호를 저장하지 않습니다. {https://avris.it/blog/passwords-are-passé=추가 정보.}'
|
||||
instancePlaceholder: '사례'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: '확인'
|
||||
invalid: '유효하지 않은 코드'
|
||||
|
|
|
@ -402,6 +402,13 @@ user:
|
|||
Rejistrarte te permete kontentarte tus kartas ({/@example=komo esta}).
|
||||
passwordless: 'Este sitio gueb no guadra las kontrasenyas. {https://avris.it/blog/passwords-are-passé=Mas informasion.}'
|
||||
instancePlaceholder: 'Instansia'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Balidar'
|
||||
invalid: 'Kodiche enfirmo.'
|
||||
|
|
|
@ -424,6 +424,13 @@ user:
|
|||
Door te registreren kun je een kaart ({/@example=zoals deze}) maken.
|
||||
passwordless: 'De website slaat geen wachtwoorden op. {https://avris.it/blog/passwords-are-passé=Meer info.}'
|
||||
instancePlaceholder: 'Instantie'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Valideer'
|
||||
invalid: 'Ongeldige code.'
|
||||
|
|
|
@ -401,6 +401,13 @@ user:
|
|||
Å registrere seg lar deg redigere kortene dine ({/@example=sånn som denne}).
|
||||
passwordless: 'Denne nettsiden lagrer ingen passord. {https://avris.it/blog/passwords-are-passé=More info.}'
|
||||
instancePlaceholder: 'Forekomst'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Gyldig'
|
||||
invalid: 'Ugyldig kode.'
|
||||
|
|
|
@ -1196,6 +1196,12 @@ user:
|
|||
Założenie konta pozwala na zarządzanie swoimi wizytówkami ({/@example=takimi jak ta}).
|
||||
passwordless: 'Strona nie zapisuje żadnych haseł. {https://avris.it/blog/passwords-are-passé=Więcej info.}'
|
||||
instancePlaceholder: 'Instancja'
|
||||
domainPlaceholder: 'Domena'
|
||||
deprecated: 'Odradzane'
|
||||
depreciationNotice: >
|
||||
Ten dostawca uwierzytelniania nie jest godny zaufania.
|
||||
<a href="%link%" target="_blank" rel="noopener">Więcej szczegółów pod tym linkiem</a>.
|
||||
Mocno polecamy włączenie innej metody uwierzytelniania.
|
||||
code:
|
||||
action: 'Sprawdź'
|
||||
invalid: 'Kod nieprawidłowy.'
|
||||
|
|
|
@ -427,6 +427,13 @@ user:
|
|||
Registrar-se te permite dirigir os cartões ({/@example=como esta}).
|
||||
passwordless: 'O site não grava qualquer senha. {https://avris.it/blog/passwords-are-passé=More info.}'
|
||||
instancePlaceholder: 'Instância'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Validar'
|
||||
invalid: 'Código inválido.'
|
||||
|
|
|
@ -518,6 +518,13 @@ user:
|
|||
Регистрация позволяет вам управлять своими аккаунтами/карточками ({/@exemple=как, например, этой}).
|
||||
passwordless: 'Сайт не хранит пароли. {https://avris.it/blog/passwords-are-passé=Больше информации}'
|
||||
instancePlaceholder: 'инстанция'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Подтвердить'
|
||||
invalid: 'Неверный код.'
|
||||
|
|
|
@ -476,6 +476,13 @@ user:
|
|||
Registering låter dig hantera dina kort ({/@andrea=som det här}).
|
||||
passwordless: 'Webbplatsen lagrar inga lösenord. {https://avris.it/blog/passwords-are-passé=Mer information.}'
|
||||
instancePlaceholder: 'Instans'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Bekräfta'
|
||||
invalid: 'Ogiltig kod.'
|
||||
|
|
|
@ -541,6 +541,13 @@ user:
|
|||
Реєстрація дозволяє вам управляти своїми акаунтами/картками ({/@exemple=як, наприклад, цією}).
|
||||
passwordless: 'Сайт не зберігає паролі. {https://avris.it/blog/passwords-are-passé=Більше інформації}'
|
||||
instancePlaceholder: 'інстанція'
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Підтвердити'
|
||||
invalid: 'Невірний код.'
|
||||
|
|
|
@ -395,6 +395,13 @@ user:
|
|||
Registering lets you manage your cards ({/@example=like this one}).
|
||||
passwordless: 'The website doesn''t store any passwords. {https://avris.it/blog/passwords-are-passé=More info.}'
|
||||
instancePlaceholder: 'Instance' # TODO
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: 'Validate'
|
||||
invalid: 'Invalid code.'
|
||||
|
|
|
@ -380,6 +380,13 @@ user:
|
|||
註冊可以讓你管理你的卡({/@example=像這個})。
|
||||
passwordless: '該網站不存儲任何密碼。 {https://avris.it/blog/passwords-are-passé=更多信息。}'
|
||||
instancePlaceholder: 'Instance' # TODO
|
||||
# TODO
|
||||
domainPlaceholder: 'Domain'
|
||||
deprecated: 'Deprecated'
|
||||
depreciationNotice: >
|
||||
This is not a reliable authentication provider.
|
||||
<a href="%link%" target="_blank" rel="noopener">Check out this link for more details</a>.
|
||||
We highly recommend making sure that you have a different login method available.
|
||||
code:
|
||||
action: '證實'
|
||||
invalid: '不對代碼'
|
||||
|
|
|
@ -23,14 +23,15 @@ export const socialProviders = {
|
|||
redirectViaHome: true,
|
||||
avatars: true,
|
||||
},
|
||||
facebook: {
|
||||
name: 'Facebook',
|
||||
redirectViaHome: true,
|
||||
avatars: false,
|
||||
},
|
||||
google: {
|
||||
name: 'Google',
|
||||
redirectViaHome: true,
|
||||
avatars: true,
|
||||
},
|
||||
facebook: {
|
||||
name: 'Facebook',
|
||||
redirectViaHome: true,
|
||||
avatars: false,
|
||||
deprecated: 'https://en.pronouns.page/blog/facebook-login-deprecated',
|
||||
},
|
||||
}
|
||||
|
|
Reference in New Issue