在互联网上进行了大量搜索之后,我发现要将android应用程序与wordpress网站连接,我必须使用JSON API。在我的网站中,用户可以注册或登录到他们的唯一帐户(如facebook、gmail、推特等)。我面临的问题是,我无法理解如何将网站和android应用程序之间的数据链接起来,以便用户能够使用相同的帐户使用这两个应用程序。问题是,在我的JSON API中,用户密码以哈希形式存储,类似于:
{
"1": {
"ID": 1,
"user_login": "user1",
"user_pass": "$P$BT6.fyjiaKZVEx/jM8sy5kC4QRkizg.",
"user_nicename": "user-1",
"user_email": "[email protected]",
"user_url": "http://localhost/MyWebsite",
"user_registered": "2021-10-27 21:29:02",
"user_activation_key": "",
"user_status": 0,
"display_name": "User 1"
},
"2": {
"ID": 2,
"user_login": "user2",
"user_pass": "$P$BArUGOBZAJfD1J3sE8OgRA3Bk1Ynfg/",
"user_nicename": "user-2",
"user_email": "[email protected]",
"user_url": "",
"user_registered": "2021-10-31 18:31:32",
"user_activation_key": "",
"user_status": 0,
"display_name": "User 2"
}
}
那么,有没有办法将这些数据与应用程序连接起来?
最合适的回答,由SO网友:Tom J Nowell 整理而成
在没有预先配置的访问权限的情况下,用户没有任何机制可以通过REST API登录以开始会话。WordPress Core为REST API提供了两种身份验证方法:
同样,没有通过REST API注册帐户的机制,用户创建需要具有管理员访问权限的用户发出经过身份验证的请求。请注意,发出此类请求会带来风险,您不希望在应用程序中使用这些类型的凭据,因为这会使您的网站极易被黑客攻击。
不过,您可以通过第三方身份验证插件来实现这一点。
https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/#authentication-plugins
还有一些插件试图填补这一空白,但我不能在这里推荐它们,因为这里的建议是离题的,任何建议都会很快过时。
问题是,在我的JSON API中,用户密码以哈希形式存储,类似于:
公开散列密码是危险的,而公开明文密码则更危险。两者都将被视为数据泄露。存储明文密码将被视为重大疏忽,并将使您的应用程序无法满足多种形式的法规遵从性要求。如果使用明文密码,在某些国家/地区提供应用程序可能是非法的。
这个user_pass
在这里对您没有任何用处,它出现在您的示例中意味着您已经为应用程序提供了对您的站点的惊人访问级别。