कैसे सुरक्षित करने के लिए Superset '/लॉग इन/' समापन बिंदु

0

सवाल

हाल ही में मैं एकीकृत सुपरसेट के साथ अपने वेब आवेदन इतना है कि जब एक है जो उपयोगकर्ता द्वारा प्रमाणीकृत अपने वेब आवेदन में प्रवेश कर सकते हैं सुपरसेट और देखें/संपादित बनाएँ/डैशबोर्ड्स के आधार पर उनकी भूमिका सिर्फ लिंक पर क्लिक करके कोई ज़रूरत नहीं है भी करने के लिए लॉगिन । ऐसा करने के लिए मैं था करने के लिए बाईपास लॉगिन के लिए जो मैंने भेजा है इस लेख में ।

कस्टम SecurityManager मैं करने के लिए इस्तेमाल किया बाईपास लॉगिन

class CustomAuthDBView(AuthDBView):

    @expose('/login/', methods=['GET', 'POST'])
    def login(self):
        redirect_url = self.appbuilder.get_url_for_index
        user_name = request.args.get('username')
        user_role = request.args.get('role')
        if user_name is not None:
            user = self.appbuilder.sm.find_user(username=user_name)
            if not user:
                role = self.appbuilder.sm.find_role(user_role)
                user = self.appbuilder.sm.add_user(user_name, user_name, 'last_name', user_name + "@domain.com", role, password = "password")
            if user:
                login_user(user, remember=False)
                return redirect(redirect_url)

        else:
            print('Unable to auto login', 'warning')
            return super(CustomAuthDBView,self).login()

class CustomSecurityManager(SupersetSecurityManager):
    authdbview = CustomAuthDBView
    def __init__(self, appbuilder):
        super(CustomSecurityManager, self).__init__(appbuilder)

तो, के अनुसार उपरोक्त कोड का उपयोग कर यूआरएल http://localhost:8088/login?username=John जाएगा लॉगिन उपयोगकर्ता जॉन आंतरिक रूप से या तो उपयोगकर्ता जॉन मौजूद नहीं खाता बनाया है के साथ कुछ भूमिका पर आधारित है, जो की भूमिका में उपयोगकर्ता अपने वेब आवेदन

अब समस्या है, जो किसी को भी कर सकते हैं लगता है इस url http://localhost:8088/login?username=USER_NAME बना सकते हैं और उनके खाते में सुपरसेट है, तो कैसे की रक्षा करने के लिए या सुरक्षित इस '/login' समापन बिंदु

1

सबसे अच्छा जवाब

0

आप कर सकते हैं एपीआई का उपयोग इतना है कि आप न पर्दाफाश अनुरोध के विवरण यूआरएल.

from flask_appbuilder.api import BaseApi, expose
from . import appbuilder

    class LoginApi(BaseApi):

    resource_name = "login"
    
    @expose('/loginapi/', methods=['GET','POST'])
    #@has_access
    
    def loginapi(self):
        if request.method == 'POST':
            username = request.json['username']
            password = request.json['password']



appbuilder.add_api(LoginApi)
2021-11-24 10:09:07

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में