aaPanel_Jose
if len(request.path) > 128: return abort(403)
if len(request.url) > 1024: return abort(403)
if len(k) > 48: return abort(403)
if len(pdata[k]) > 256: return abort(403)

ALL these parameters are like this

It gives me error 401 what could be the reason of that my API's are not working

    aaPanel_Jose
    checked on panel settinng
    there is BasicAuth authentication is closed
    when i tried to set open it ask for username and passowrd
    do i need to add random username and password
    but in api we use token so could it be relate

    Madhvi
    Please check line 151 of the /www/server/panel/BTPanel/init.py file to see if your request triggered this judgment

    In addition, please check whether your api whitelist has added the ip you used for the request

      aaPanel_Jose
      if not 'login' in session and not 'admin_auth' in session and not 'down' in session:
      If I comment this line do it effect to any other functionality.

      if request.path.find('/static/') != -1 or request.path == '/code':
      if not 'login' in session and not 'admin_auth' in session and not 'down' in session:
      session.clear()
      return abort(401)
      i dont't have idea with these parametersis there any idea to ignore this command so that my api will work

        aaPanel_Jose
        //MARK:- Post & Get Api Interaction
        func postData(urlStr: String, params: Dictionary? = nil, showIndicator: Bool = true, completion: @escaping (ApiResponse?) -> Void) {


            if NetworkReachabilityManager()!.isReachable {
                
                if showIndicator {
                    Proxy.shared.showActivityIndicator()
                }
                
                AF.request("\(Apis.serverUrl)\(urlStr)",
                    method: .post,
                    parameters: params!,
                    encoding: URLEncoding.httpBody,
                    headers:[   "Authorization": "Bearer \(Proxy.shared.accessTokenNil())",
                        "User-Agent":"\(AppInfo.userAgent)"]).responseJSON { response in
                            
                            debugPrint("Url,\(Apis.serverUrl)\(urlStr), Acces-Token, \(Proxy.shared.accessTokenNil())")
                            debugPrint("PostParam", "\(params!)")
                            
                            Proxy.shared.hideActivityIndicator()
                            
                            if response.data != nil && response.error == nil {
                                debugPrint("RESPONSE",response.value!)
                                debugPrint("JSON-RESPONSE", NSString(data: response.data!, encoding: String.Encoding.utf8.rawValue)!)
                                
                                let dict  = response.value as? [String:AnyObject]
                                if let dateCheck = dict!["datecheck"] as? String {
                                    if !Proxy.shared.expiryDateCheckMethod(expiryDate: dateCheck) {
                                        return
                                    }
                                }
                                
                                if response.response?.statusCode == 200 {
                                    let res : ApiResponse?
                                    res = ApiResponse(jsonData: response.data!, data: dict, message: dict!["message"] as? String ?? AlertTitle.success)
                                     
                                    completion(res!)
                                } else if response.response?.statusCode == 400 {
                                     Proxy.shared.displayStatusCodeAlert( dict!["error"] as? String ??  AlertTitle.error)
                                } else {
                                    self.statusHandler(response.response, data: response.data, error: response.error as NSError?)
                                }
                            } else {
                                self.statusHandler(response.response, data: response.data, error: response.error as NSError?)
                            }
                            
                }
            } else {
                Proxy.shared.hideActivityIndicator()
                Proxy.shared.openSettingApp()
            }
        }
        
        func getData(urlStr: String, showIndicator: Bool = true, completion: @escaping (ApiResponse?) -> Void)  {
            
            if NetworkReachabilityManager()!.isReachable {
                if showIndicator {
                    Proxy.shared.showActivityIndicator()
                }
                
                AF.request("\(Apis.serverUrl)\(urlStr)",
                    method: .get, parameters: nil,
                    encoding: JSONEncoding.default,
                    headers:[   "Authorization": "Bearer \(Proxy.shared.accessTokenNil())",
                        "User-Agent":"\(AppInfo.userAgent)"] ).responseJSON { response in
                            
                            debugPrint("Url,\(Apis.serverUrl)\(urlStr), Acces-Token, \(Proxy.shared.accessTokenNil())")
                            Proxy.shared.hideActivityIndicator()
                            
                            
                            if response.data != nil && response.error == nil {
                                
                                debugPrint("RESPONSE",response.value!)
                                debugPrint("JSON-RESPONSE", NSString(data: response.data!, encoding: String.Encoding.utf8.rawValue)!)
                                
                                let dict  = response.value as? [String:AnyObject]
                                if let dateCheck = dict!["datecheck"] as? String {
                                    if !Proxy.shared.expiryDateCheckMethod(expiryDate: dateCheck) {
                                        return
                                    }
                                }
                                
                                if response.response?.statusCode == 200 {
                                    let res : ApiResponse?
                                    res = ApiResponse(jsonData: response.data!, data: dict, message: dict!["message"] as? String ?? AlertTitle.success)
                                    completion(res!)
                                } else if response.response?.statusCode == 400 {
                                      Proxy.shared.displayStatusCodeAlert( dict!["error"] as? String ??  AlertTitle.error) 
                                } else {
                                    self.statusHandler(response.response, data: response.data, error: response.error as NSError?)
                                }
                            } else {
                                self.statusHandler(response.response, data: response.data, error: response.error as NSError?)
                            }
                }
            } else {
                Proxy.shared.hideActivityIndicator()
                Proxy.shared.openSettingApp()
            }
        }
        \

        aaPanel_Jose
        its post and get method i am used
        "LoginForm[username]": request.email! as AnyObject ,
        "LoginForm[password]": request.password! as AnyObject ,
        "LoginForm[device_token]" : "(Proxy.shared.deviceToken())",
        "LoginForm[device_type]" : "(DeviceInfo.deviceType)",
        "LoginForm[device_name]" : "(DeviceInfo.deviceName)"


        login parameters

        aaPanel_Jose
        Hi is there any way so to ignore the api request specification, so that my api will work

        aaPanel_Jose
        we have our project on this aa-panel and wants that project api to run but it gives error.
        we have not made any change or any work with the panel api

        Connect with us: 📨 Telegram 💬 Discord Email: support@aapanel.com