passkey.ts 931 B

123456789101112131415161718192021222324252627282930313233343536
  1. import type { RegistrationResponseJSON } from '@simplewebauthn/types'
  2. import http from '@/lib/http'
  3. import type { ModelBase } from '@/api/curd'
  4. export interface Passkey extends ModelBase {
  5. name: string
  6. user_id: string
  7. raw_id: string
  8. }
  9. const passkey = {
  10. begin_registration() {
  11. return http.get('/begin_passkey_register')
  12. },
  13. finish_registration(attestationResponse: RegistrationResponseJSON, passkeyName: string) {
  14. return http.post('/finish_passkey_register', attestationResponse, {
  15. params: {
  16. name: passkeyName,
  17. },
  18. })
  19. },
  20. get_list() {
  21. return http.get('/passkeys')
  22. },
  23. update(passkeyId: number, data: Passkey) {
  24. return http.post(`/passkeys/${passkeyId}`, data)
  25. },
  26. remove(passkeyId: number) {
  27. return http.delete(`/passkeys/${passkeyId}`)
  28. },
  29. get_config_status(): Promise<{ status: boolean }> {
  30. return http.get('/passkeys/config')
  31. },
  32. }
  33. export default passkey