add temporary firebase
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
parent
1be264f1c0
commit
742b946caf
|
@ -1,6 +1,7 @@
|
||||||
"""Mobile authenticator stage"""
|
"""Mobile authenticator stage"""
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
from firebase_admin.messaging import Message, send
|
||||||
|
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
@ -77,6 +78,22 @@ class MobileDevice(SerializerModel, Device):
|
||||||
|
|
||||||
return MobileDeviceSerializer
|
return MobileDeviceSerializer
|
||||||
|
|
||||||
|
def send_message(self):
|
||||||
|
# See documentation on defining a message payload.
|
||||||
|
message = Message(
|
||||||
|
data={
|
||||||
|
'score': '850',
|
||||||
|
'time': '2:45',
|
||||||
|
},
|
||||||
|
token=self.firebase_token,
|
||||||
|
)
|
||||||
|
|
||||||
|
# Send a message to the device corresponding to the provided
|
||||||
|
# registration token.
|
||||||
|
response = send(message)
|
||||||
|
# Response is a message ID string.
|
||||||
|
print('Successfully sent message:', response)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return str(self.name) or str(self.user)
|
return str(self.name) or str(self.user)
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ class AuthenticatorMobileStageView(ChallengeStageView):
|
||||||
confirmed=False,
|
confirmed=False,
|
||||||
)
|
)
|
||||||
token = MobileDeviceToken.objects.create(
|
token = MobileDeviceToken.objects.create(
|
||||||
user=self.get_pending_user(),
|
user=device.user,
|
||||||
device=device,
|
device=device,
|
||||||
)
|
)
|
||||||
self.executor.plan.context[FLOW_PLAN_MOBILE_ENROLL] = token
|
self.executor.plan.context[FLOW_PLAN_MOBILE_ENROLL] = token
|
||||||
|
|
|
@ -177,6 +177,7 @@ wsproto = "*"
|
||||||
xmlsec = "*"
|
xmlsec = "*"
|
||||||
zxcvbn = "*"
|
zxcvbn = "*"
|
||||||
jsonpatch = "*"
|
jsonpatch = "*"
|
||||||
|
firebase-admin = "*"
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
bandit = "*"
|
bandit = "*"
|
||||||
|
|
50
schema.yml
50
schema.yml
|
@ -2206,6 +2206,41 @@ paths:
|
||||||
schema:
|
schema:
|
||||||
$ref: '#/components/schemas/GenericError'
|
$ref: '#/components/schemas/GenericError'
|
||||||
description: ''
|
description: ''
|
||||||
|
/authenticators/mobile/{uuid}/enrollment_status/:
|
||||||
|
post:
|
||||||
|
operationId: authenticators_mobile_enrollment_status_create
|
||||||
|
description: Check device enrollment status
|
||||||
|
parameters:
|
||||||
|
- in: path
|
||||||
|
name: uuid
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
format: uuid
|
||||||
|
description: A UUID string identifying this Mobile Device.
|
||||||
|
required: true
|
||||||
|
tags:
|
||||||
|
- authenticators
|
||||||
|
security:
|
||||||
|
- mobile_device_token: []
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/MobileDeviceEnrollmentStatus'
|
||||||
|
description: ''
|
||||||
|
'400':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/ValidationError'
|
||||||
|
description: ''
|
||||||
|
'403':
|
||||||
|
content:
|
||||||
|
application/json:
|
||||||
|
schema:
|
||||||
|
$ref: '#/components/schemas/GenericError'
|
||||||
|
description: ''
|
||||||
/authenticators/mobile/{uuid}/receive_response/:
|
/authenticators/mobile/{uuid}/receive_response/:
|
||||||
post:
|
post:
|
||||||
operationId: authenticators_mobile_receive_response_create
|
operationId: authenticators_mobile_receive_response_create
|
||||||
|
@ -35235,6 +35270,21 @@ components:
|
||||||
minLength: 1
|
minLength: 1
|
||||||
required:
|
required:
|
||||||
- device_uid
|
- device_uid
|
||||||
|
MobileDeviceEnrollmentStatus:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
status:
|
||||||
|
$ref: '#/components/schemas/MobileDeviceEnrollmentStatusStatusEnum'
|
||||||
|
required:
|
||||||
|
- status
|
||||||
|
MobileDeviceEnrollmentStatusStatusEnum:
|
||||||
|
enum:
|
||||||
|
- success
|
||||||
|
- waiting
|
||||||
|
type: string
|
||||||
|
description: |-
|
||||||
|
* `success` - Success
|
||||||
|
* `waiting` - Waiting
|
||||||
MobileDeviceRequest:
|
MobileDeviceRequest:
|
||||||
type: object
|
type: object
|
||||||
description: Serializer for Mobile authenticator devices
|
description: Serializer for Mobile authenticator devices
|
||||||
|
|
Reference in New Issue