कैसे एक उपयोगकर्ता के प्रमाणीकरण के लिए Firebase REST API (अजगर) उपयोग कैसे करें?

वोट
2

मैं हालात एप्लिकेशन के अपने इंटरनेट के लिए बैकएंड के रूप में Firebase उपयोग कर रहा हूँ। मेरी रास्पबेरी Pi पर अजगर का उपयोग करना, मैं Firebase पर डेटा भंडारण कर रहा हूँ। वर्तमान में के रूप में मेरी डेटाबेस आर / डब्ल्यू के लिए सार्वजनिक है। मैं कंसोल> प्रमाणीकरण> उपयोगकर्ता का उपयोग कर एक डमी खाता बना लिया है। मैं बाकी या किसी lib साथ अजगर का उपयोग कर मेरी रास्पबेरी Pi के माध्यम से प्रवेश करने के लिए इस खाते का उपयोग करने के लिए अपने Firebase अनुप्रयोग करना चाहते हैं।

लॉगिन करने के बाद, मैं आर / केवल अपने डेटा डब्ल्यू करने के लिए उपयोगकर्ता को प्रतिबंधित करने के डेटाबेस> नियम का प्रयोग करेंगे। मैं नई पूरी तरह से firebase के लिए नया हूँ! इसके अलावा पुरानी डॉक्स Firebase पर पदावनत कर रहे हैं। मुझे पता है कि मेरे ऐप्स के साथ आगे बढ़ने के लिए कैसे करना चाहते हैं। मैं कैसे पायथन या REST API पर यह करने के लिए पर कोई जानकारी प्राप्त करने में असमर्थ हूँ।

https://firebase.google.com/docs/auth/ इस नए प्रलेखन मैं प्रमाणीकरण जो REST API का उपयोग करने के लिए कोई जानकारी नहीं है के लिए मिल गया है है।

प्राप्त करने के लिए मैं क्या इच्छा वहाँ वैसे भी है? किसी भी मदद की सराहना की है।

01/06/2016 को 15:04
उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
2

Firebase प्रमाणीकरण टीम से अलफोंसो।

वर्तमान में हम प्रमाणन के लिए एक समर्थित या दस्तावेज REST API का नहीं है।

आप अब भी लीगेसी कंसोल के माध्यम से एक परियोजना बना सकते हैं और कैसे टकसाल अपने स्वयं के कस्टम प्रमाणन टोकन के लिए सीखने के लिए पुराने दस्तावेज़ों का उपयोग करें, और उन्हें प्रमाणीकरण के लिए पर भेजने के डेटाबेस REST API करने के लिए।

01/06/2016 को 20:35
का स्रोत उपयोगकर्ता

वोट
0

मैं हाल ही में इस समस्या का सामना किया है और मेरे प्रयोजनों के लिए firebase_admin के लिए एक बंदर पैच, जो मुख्य पुस्तकालय के लिए एक verify_user विधि कहते हैं बनाने समाप्त हो गया। (मैं भी pypi पर डाल दिया, https://pypi.org/project/firebase_fave/ , pip install firebase_fave)

# import several different ways to make the code read like it would as part of the package it belongs in
import firebase_admin
from firebase_admin._user_mgt import *
from firebase_admin.auth import _get_auth_service, AuthError
from firebase_admin import firestore


# helper to add methods
def _add_method(cls):
    def cls_decorator(func):
        @wraps(func)
        def copied(self, *args, **kwargs): # wrap so we don't bind the func
            return func(self, *args, **kwargs)
        setattr(cls, func.__name__, copied)
        return func
    return cls_decorator


# add password verify to user manager
@_add_method(firebase_admin._user_mgt.UserManager)
def verify_user(self, **kwargs):
    """Gets the user data corresponding to the provided data and verifies"""
    key, key_type = self.get_user(**kwargs)['email'], 'email'

    if 'password' in kwargs:
        password = kwargs.pop('password')
    else:
        password = ''

    payload = {key_type:key, 'password':password, "returnSecureToken": True}

    try:
        response = self._client.request('post', 'verifyPassword', json=payload)
    except requests.exceptions.RequestException as error:
        msg = 'Failed to get user by {0}: {1}.'.format(key_type, key)
        self._handle_http_error(INTERNAL_ERROR, msg, error)
    else:
        if not response:
            raise ApiCallError(
                USER_NOT_FOUND_ERROR,
                'No user record found for the provided {0}: {1}.'.format(key_type, key))
        return response


# as in firebase_admin, we want a convenience method as well
def _outer_verify_user(password, **kwargs):
    """Verifies a user given password and one of uid or email.
    Args:
        uid: A user ID string.
        email: user e-mail address.
        app: An App instance (optional).

    Returns:
        UserRecord: A UserRecord instance.

    Raises:
        ValueError: if both user ID and email are None, empty, or malformed
        AuthError: If an error occurs while deleting the user account.
    """
    app = kwargs.pop('app', None)
    user_manager = _get_auth_service(app).user_manager
    kwargs['password'] = password
    try:
        return user_manager.verify_user(**kwargs)
    except firebase_admin._user_mgt.ApiCallError as error:
        raise AuthError(error.code, str(error), error.detail)


# finally, apply this convenience method to the class.
firebase_admin.verify_user = _outer_verify_user
10/12/2018 को 18:43
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more