LinuxSuRen 我想试着用 Halo 的 API 做一点自动化的接口测试,但在用户登陆这块遇到点问题,不太清楚密码是怎么加密的。下面是我的测试用例。 #!api-testing # yaml-language-server: $schema=https://gitee.com/linuxsuren/api-testing/raw/master/sample/api-testing-schema.json name: Halo api: https://demo.halo.run items: - name: public-key request: api: /login/public-key method: GET - name: login request: api: /login method: POST body: | { "username": "demo", "password": "P@ssw0rd123.." } expect: statusCode: 500
Ryan Wang 👍 RSA,获取到 public-key 之后可以参考 Console 这边的流程:https://github.com/halo-dev/halo/blob/ee1ea061713b21e81f40612185b3e7d4628135b3/console/src/components/login/LoginForm.vue#L56-L73 此外,如果考虑到这种场景下用这种方式比较麻烦的话,可以用 Basic Auth。
guqing LinuxSuRen Basic Auth不在需要调用登录 API 了,比如想要调用 Reload 插件的 API 对于 curl 来说 使用 -u 参数即可 curl -u demo:P@ssw0rd123.. -X PUT https://demo.halo.run/apis/api.console.halo.run/v1alpha1/plugins/plugin-repos/reload
LinuxSuRen 不知道 Halo 现在是否有自动化接口测试,如果还没有,而且维护者有兴趣的话,我可以帮忙把这块做起来。下面是一个简单的示例: https://github.com/LinuxSuRen/api-testing/blob/09b58601c68331bff135d586540e30e5c08b8870/sample/halo.yaml
LinuxSuRen guqing 我没有办法保证太久,持续维护一年还是可以做到的。到时候如果确实对 Halo 有帮助,那可以继续维护下去,如果没有带来实际价值,那确实不太需要接口测试了。 那我就PR走起了。
LinuxSuRen 已解决。 有点不太明白,提示 public key 是 base64 的,解密后 {"base64Format":"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqjNKsGtWsOVGz0cgCEg5dBGgD03fmgXHfClp/C7yRho6Fopyhpz1Jga0rVZsavdt0ULmFWh6XcCC4TML11VVAneAaNXzBb+XRlhfKQeZn5D7K3EHISsj90gcV6jMADOFLvvlups/R0tHhnhbn4+WWJosLRFrm6INPNQRaXPOJsDT+VDoTNNbp71Dlemdg8oNk2abQUnfDY6WzF5gES2ZYS/9eW8qFsA56fdKbOiOAUs9oxVT3Ouyr++VYA/VDLjztGKPSDRvThpEbY7AQe+L2pTkZYwryoLNlvbahAvTTGyCi8bsjrcuZ1/lmjy41qo1LiogCzcwxDQBMkSLIKN55wIDAQAB"} ➜ api-testing git🙁master) ✗ echo -n MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqjNKsGtWsOVGz0cgCEg5dBGgD03fmgXHfClp/C7yRho6Fopyhpz1Jga0rVZsavdt0ULmFWh6XcCC4TML11VVAneAaNXzBb+XRlhfKQeZn5D7K3EHISsj90gcV6jMADOFLvvlups/R0tHhnhbn4+WWJosLRFrm6INPNQRaXPOJsDT+VDoTNNbp71Dlemdg8oNk2abQUnfDY6WzF5gES2ZYS/9eW8qFsA56fdKbOiOAUs9oxVT3Ouyr++VYA/VDLjztGKPSDRvThpEbY7AQe+L2pTkZYwryoLNlvbahAvTTGyCi8bsjrcuZ1/lmjy41qo1LiogCzcwxDQBMkSLIKN55wIDAQAB | base64 -d �0�0 �H�� ��3J�kV��F�GH9t�Mߚ�|)i�.�F:�r���&��Vlj�m�B�hz]���3 ���-�a/�yo*�9��Jl�K=�S�벯�� �UUw�h����FX)����+q!+#�HW��3�.�庛?GKG�x[���X�,-k�� ��b�H4oNDm��A�ڔ�e�+ʂ͖�ڄ �Ll���쎷.g�<�֪5. 70�42D� �y�
LinuxSuRen {"type":"about:blank","title":"Internal Server Error","status":500,"detail":"Something went wrong, please try again later.","instance":"/login","requestId":"57058f32-5539","timestamp":"2023-06-03T08:08:57.132108596Z"} 登陆接口返回上面的内容,是什么意思呀?