Firebase와 Django를 실행하는 자체 서버를 사용하는 Android 앱을 개발 중입니다. 내가하려는 일은, 먼저 firebase 문서에 지정된대로 사용자 정의 토큰을 생성하는 django 서버에 안드로이드 응용 프로그램을 사용하여 사용자를 인증하려고합니다. 그런 다음 생성 된 사용자 토큰을 다시 Android로 보냅니다.Firebase Auth를 사용하여 android에 토큰을 다시 보내는 방법
제 질문은 어떻게 그 커스텀 토큰을 안드로이드에 다시 보내는 것입니까? 나는 JSON 객체로 보내려고했다. 그러나 JWT는 JSON을 직렬화 할 수 없다고합니다.
나는 json 객체로 안드로이드 응용 프로그램에서 사용자 이름과 암호를 전달하고 내 장고 서버로 인증했습니다.
여기 내 최소한의 Django
코드 :
import firebase_admin
from firebase_admin import credentials
from firebase_admin import auth
cred = credentials.Certificate("firebase-admin.json")
default_app = firebase_admin.initialize_app(cred)
def validateuser(request):
json_data=json.loads(request.body.decode('utf-8'))
try:
// I verify the username and password and extract the uid
uid = 'some-uid'
custom_token = auth.create_custom_token(uid)
result={'TAG_SUCCESS': 1, 'CUSTOM_TOKEN': custom_token }
except:
result={'TAG_SUCCESS': 0, 'CUSTOM_TOKEN': '0'}
return HttpResponse(json.dumps(result), content_type='application/json')
하지만 사용자 정의 토큰이 JSON 직렬화 할 수없는 말했다. 이렇게하는 방법이 아닌가? 맞춤 토큰을 다시 Android 앱에 보내려면 어떻게해야하나요?
uid: 78b30d23-6238-4634-b2e4-73cc1f0f7486
custom_token: b'eyJraWQiOiAiZmFlNzA2MzZiY2UwZTk0Y2Y5YTM2OWRlNzc4ZDZlYWQ5NGMwM2MzYiIsICJhbGciOiAiUlMyNTYiLCAidHlwIjogIkpXVCJ9.eyJpc3MiOiAiZmlyZWJhc2UtYWRtaW5zZGstOXBtbjVAYnVzdHJhY2tlci0xZDE3OS5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsICJ1aWQiOiAiNzhiMzBkMjMtNjIzOC00NjM0LWIyZTQtNzNjYzFmMGY3NDg2IiwgImF1ZCI6ICJodHRwczovL2lkZW50aXR5dG9vbGtpdC5nb29nbGVhcGlzLmNvbS9nb29nbGUuaWRlbnRpdHkuaWRlbnRpdHl0b29sa2l0LnYxLklkZW50aXR5VG9vbGtpdCIsICJleHAiOiAxNTA4MDc2OTA4LCAiaWF0IjogMTUwODA3MzMwOCwgInN1YiI6ICJmaXJlYmFzZS1hZG1pbnNkay05cG1uNUBidXN0cmFja2VyLTFkMTc5LmlhbS5nc2VydmljZWFjY291bnQuY29tIn0=.jgexW_xR5FeZvuO5TPWO8EOBnRJ28ut9OR_OxeajE1_o4ns4fwd2pMXlK2GkM464P5Vi-IxheG-IIJcANxGSDeZgvgpkLfKkHMZeSaraqfEQGq6N7ipuD8o1T7zd5qm79twmFbrQZRB1y7g1-zcjL69x8KFsThWOTmo0TYj5l3zf8_2Cxbw2SGefMWkCwL0d1yQjcUqVyuSAP3-Sg8KrrqCcG4cjNOXKeWxwbUQO7DobOQlT5TfRApwWk8Td6uPjD7d6jqMo-HPKOis0vRoXMBzflZKj36-hIOFkygZNbDWLTsQzbb3HZg8dBabA5GTy--iQi038TRMIm2W0irr0ng=='
Internal Server Error: /api/user/validateuser/ Traceback (most recent call last): File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/exception.py", line 41, in inner response = get_response(request) File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 249, in _legacy_get_response response = self._get_response(request) File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 187, in _get_response response = self.process_exception_by_middleware(e, request) File "/usr/local/lib/python3.5/dist-packages/django/core/handlers/base.py", line 185, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/local/lib/python3.5/dist-packages/django/views/decorators/csrf.py", line 58, in wrapped_view return view_func(*args, **kwargs) File "/home/ubuntu/www/Tracker/user/api/views.py", line 251, in validateuser return HttpResponse(json.dumps(result), content_type='application/json') File "/usr/lib/python3.5/json/init.py", line 230, in dumps return _default_encoder.encode(obj) File "/usr/lib/python3.5/json/encoder.py", line 198, in encode chunks = self.iterencode(o, _one_shot=True) File "/usr/lib/python3.5/json/encoder.py", line 256, in iterencode return _iterencode(o, 0) File "/usr/lib/python3.5/json/encoder.py", line 179, in default
raise TypeError(repr(o) + " is not JSON serializable")