3

我目前正在尝试为我的网站编写程序,但我正在尝试自动登录 mojang,以便他们可以更快地迁移,并确保他们的 MC 帐户是安全的。但是,当我尝试自动登录到 Mojang 进行迁移时,它给了我错误:身份验证失败。

我知道其他人尝试过这个并且成功了,但是那是用 JAVA 编码的,我想用 HTML 来做这个。

<form action="https://account.mojang.com/migrate/check" method=POST target=_blank>
<input type="text" name="mcusername">  
<input type="text" name="password">
<?php
echo '<input type="hidden" name="authenticityToken" value='.$token.'>';
?> 
<input type=submit value="Migrate Account">
</form>

我尝试使用从 mojang.com/migrate 获取的令牌,使用以下代码:

$file = file_get_contents('https://account.mojang.com/migrate');
function get_string_between($string, $start, $end){
    $string = " ".$string;
    $ini = strpos($string,$start);
    if ($ini == 0) return "";
    $ini += strlen($start);
    $len = strpos($string,$end,$ini) - $ini;
    return substr($string,$ini,$len);
}
$fullstring = $file;
  $fullstring = str_replace("/migrate/check", "https://account.mojang.com/migrate/check", $fullstring);
$token = get_string_between($fullstring, '<input type="hidden" name="authenticityToken" value="', '">');

但是,当我按下时,这会返回错误:迁移帐户。我想我需要对 cookie 或 Auth 令牌做一些事情。如果你们有任何想法..请告诉我

4

1 回答 1

1

您使用脚本检索的令牌是为您的服务器生成的,而不是为提交 html 表单的用户生成的。您必须使用 Javascript 获取您的令牌。

MLHttpRequest cannot load https://account.mojang.com/migrate. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://yourdomain.com' is therefore not allowed access. 

因此,我认为您无法使用 html/php 对客户端进行身份验证。

于 2014-04-24T14:34:25.120 回答