使用带有特殊字符的 Google API Directory 更改密码 答案:更多信息:满足密码要求

问题描述

我已经在使用 Google Api Directory 来更改用户的密码,但一位用户在他的密码中输入了“ñ”。 当他尝试登录时,他收到一条错误消息,指出密码不正确。 字母“ñ”是一个扩展的 ASCII 字符。

API 目录文档说:

密码可以包含任意 ASCII 字符组合

我的问题是:密码可以包含扩展的 ASCII 字符还是只能包含基本字符?

要对密码进行编码,我使用此代码(密码具有 utf-8 编码):

$user_obj = new Google_Service_Directory_User();
$service = new Google_Service_Directory($client);

//Asci conversion
$dades["password"] = mb_convert_encoding($dades["password"],"ASCII",mb_detect_encoding($dades["password"]));
$user_obj->setHashFunction("SHA-1");        //SHA1 hash
$user_obj->setPassword(hash("sha1",$dades["password"]));

//Execute
try{
    $service->users->update($dades["emailg"],$user_obj);
                
} catch (Exception $e) { 
    $errors = $e->getMessage();
}

解决方法

答案:

不,不允许使用扩展字符集。

更多信息:

来自 creating passwords 上的 Google 帐户帮助文章(强调我自己的):

满足密码要求

使用 12 个或更多字符创建密码。它可以是字母、数字和符号的任意组合(仅限 ASCII 标准字符)。不支持重音和重音字符。

我知道这通常是个坏消息,但我希望这对您有所帮助!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...