-
Notifications
You must be signed in to change notification settings - Fork 17
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
Verification qui ne fonctionne pas #37
Comments
Même problème. |
Pareil, quelqu'un à une solution ? |
Même problème, je pense avoir compris d'où cela vient, mais je suis malheureusement incapable de résoudre ce problème... En jetant un oeil dans la table des votes en bdd après avoir eu ce problème et il se trouve que l'IP récupérée par le votant était son IPv6. J'en déduis donc que le site de vote récupère l'IPv4 et le plugin de vote récupère l'IPv4 mais parfois l'IPv6, faussant donc la vérification de vote ^^ |
Oui, certains sites de vote ne supporte pas V6. Cela fait longtemps que je n'avais pas reflechis a ce problème. |
Bonjour, Je ne souhaitais pas passer mon site en ipv4. Premièrement parce que ce n'est pas une solution d'avenir, ipv6 est destiné à remplacer ipv4. Deuxièmement parce que certains sites de vote utilisent l'ipv6 et donc ce serait casser la compatibilité avec ces sites. Certains sites de vote proposent des API pour vérifier les votes à partir du pseudo et non de l'IP, la solution la plus propre est d'utiliser ce type de vérification. Malheureusement ce n'est pas possible pour tous les sites. Il faut donc réussir à vérifier les votes pour l'ipv4 ET pour l'ipv6. Je suis parvenu à une solution qui me convient et je vous la partage si ça peut aider. J'ai changé la fonction checkVote du frontend pour alterner entre les deux sous-domaines: function checkVote(ipv4 = true)
{
$.ajax({
url: 'https://v' + (ipv4 ? '4' : '6') + '.monsite.net/vote/step/check',
type : 'GET',
dataType: 'JSON',
crossDomain: false,
xhrFields: {
withCredentials: true
},
success: function(data) {
if (data.status) {
if (!data.reward_later)
$('.get-reward[data-reward="later"]').remove()
next(3)
} else {
setTimeout(() => {checkVote(!ipv4)}, 2500);
}
},
error: function (xhr) {
setTimeout(() => {checkVote(!ipv4)}, 2500);
}
});
} Afin de partager la session entre les sous-domaines, j'ai partagé les cookies dans les sous-domaines et autorisé les requêtes CORS (de manière restreinte) sur mon serveur Apache2: RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
Header always edit Set-Cookie (.*) "$1; Domain=monsite.net"
Header always set Access-Control-Allow-Origin "https://monsite.net"
Header always set Access-Control-Allow-Credentials "true"
Header always set Access-Control-Allow-Headers "X-Requested-With, Content-Type"
Header always set Access-Control-Max-Age "600" C'est une solution expérimentale testée et fonctionnelle. Vous pouvez l'utiliser en tant que telle ou bien vous en inspirer pour trouver une solution plus simple peut être. |
Cela va loin pour quelque chose qui aurait dû être supporter sur les classements initialement. |
Je suis d'accord qu'il s'agit de la responsabilité des sites de vote. Ma solution n'est qu'une astuce pour contourner le problème. |
Malheureusement IPV6 c'est un rêve mort née. IPV6 ne fixe rien, et ne remplace donc aucunement IPV4. |
Bonjour,
J'ai teste 3 sites de vote avec votre plugin et je n'arrive pas a passer l'etape de verification. Aucune erreur n'apparait mais le chargement de verification est infini. J'ai bien des vote/step/check avec le status 200.
Cordialement,
BOPP Lucas
The text was updated successfully, but these errors were encountered: