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