public static function init_menu()
 {
     add_menu_page(__('Auth0', WPA0_LANG), __('Auth0', WPA0_LANG), 'manage_options', 'wpa0', array('WP_Auth0_Admin', 'render_settings_page'), WP_Auth0::getPluginDirUrl() . 'assets/img/a0icon.png', 81);
     add_submenu_page('wpa0', __('Auth0 Settings', WPA0_LANG), __('Settings', WPA0_LANG), 'manage_options', 'wpa0', array('WP_Auth0_Admin', 'render_settings_page'));
     add_submenu_page('wpa0', __('Auth0 Error Log', WPA0_LANG), __('Error Log', WPA0_LANG), 'manage_options', 'wpa0-errors', array('WP_Auth0_ErrorLog', 'render_settings_page'));
     if (WP_Auth0::isJWTAuthEnabled()) {
         add_submenu_page('wpa0', __('JWT Auth integration', WPA0_LANG), __('JWT Auth integration', WPA0_LANG), 'manage_options', 'wpa0-jwt-auth', array('WP_Auth0_Configure_JWTAUTH', 'render_settings_page'));
     }
 }
 protected static function setupjwt()
 {
     if (WP_Auth0::isJWTAuthEnabled()) {
         JWT_AUTH_Options::set('aud', WP_Auth0_Options::get('client_id'));
         JWT_AUTH_Options::set('secret', WP_Auth0_Options::get('client_secret'));
         JWT_AUTH_Options::set('secret_base64_encoded', true);
         JWT_AUTH_Options::set('override_user_repo', 'WP_Auth0_UsersRepo');
         WP_Auth0_Options::set('jwt_auth_integration', true);
     }
 }
 public static function init_admin()
 {
     /* ------------------------- BASIC ------------------------- */
     self::init_option_section('Basic', array(array('id' => 'wpa0_create_account_message', 'name' => '', 'function' => 'create_account_message'), array('id' => 'wpa0_domain', 'name' => 'Domain', 'function' => 'render_domain'), array('id' => 'wpa0_client_id', 'name' => 'Client ID', 'function' => 'render_client_id'), array('id' => 'wpa0_client_secret', 'name' => 'Client Secret', 'function' => 'render_client_secret'), array('id' => 'wpa0_login_enabled', 'name' => 'WordPress login enabled', 'function' => 'render_allow_wordpress_login')));
     /* ------------------------- Appearance ------------------------- */
     self::init_option_section('Appearance', array(array('id' => 'wpa0_form_title', 'name' => 'Form Title', 'function' => 'render_form_title'), array('id' => 'wpa0_social_big_buttons', 'name' => 'Show big social buttons', 'function' => 'render_social_big_buttons'), array('id' => 'wpa0_icon_url', 'name' => 'Icon URL', 'function' => 'render_icon_url'), array('id' => 'wpa0_gravatar', 'name' => 'Enable Gravatar integration', 'function' => 'render_gravatar'), array('id' => 'wpa0_custom_css', 'name' => 'Customize the Login Widget CSS', 'function' => 'render_custom_css')));
     /* ------------------------- ADVANCED ------------------------- */
     $advancedOptions = array(array('id' => 'wpa0_sso', 'name' => 'Single Sign On (SSO)', 'function' => 'render_sso'), array('id' => 'wpa0_dict', 'name' => 'Translation', 'function' => 'render_dict'), array('id' => 'wpa0_username_style', 'name' => 'Username style', 'function' => 'render_username_style'), array('id' => 'wpa0_remember_last_login', 'name' => 'Remember last login', 'function' => 'render_remember_last_login'), array('id' => 'wpa0_default_login_redirection', 'name' => 'Login redirection URL', 'function' => 'render_default_login_redirection'), array('id' => 'wpa0_verified_email', 'name' => 'Requires verified email', 'function' => 'render_verified_email'), array('id' => 'wpa0_allow_signup', 'name' => 'Allow signup', 'function' => 'render_allow_signup'), array('id' => 'wpa0_custom_js', 'name' => 'Customize the Login Widget with custom JS', 'function' => 'render_custom_js'), array('id' => 'wpa0_auth0_implicit_workflow', 'name' => 'Auth0 Implicit flow', 'function' => 'render_auth0_implicit_workflow'), array('id' => 'wpa0_auto_login', 'name' => 'Auto Login (no widget)', 'function' => 'render_auto_login'), array('id' => 'wpa0_auto_login_method', 'name' => 'Auto Login Method', 'function' => 'render_auto_login_method'), array('id' => 'wpa0_ip_range_check', 'name' => 'Enable on IP Ranges', 'function' => 'render_ip_range_check'), array('id' => 'wpa0_ip_ranges', 'name' => 'IP Ranges', 'function' => 'render_ip_ranges'), array('id' => 'wpa0_extra_conf', 'name' => 'Extra settings', 'function' => 'render_extra_conf'), array('id' => 'wpa0_cdn_url', 'name' => 'Widget URL', 'function' => 'render_cdn_url'));
     if (WP_Auth0::isJWTAuthEnabled()) {
         $advancedOptions[] = array('id' => 'wpa0_jwt_auth_integration', 'name' => 'Enable JWT Auth integration', 'function' => 'render_jwt_auth_integration');
     }
     self::init_option_section('Advanced', $advancedOptions);
     register_setting(WP_Auth0_Options::OPTIONS_NAME, WP_Auth0_Options::OPTIONS_NAME, array(__CLASS__, 'input_validator'));
 }