android: объединение приложений Android с wordpress (функция входа) [дубликат]

EL 3.0 или новее

Если вы уже используете Java EE 7 / EL 3.0, то @page import также импортирует константы класса в области EL.

<%@ page import="com.example.YourConstants" %>

Это будет под крышками импортироваться через ImportHandler#importClass() и быть доступным как ${YourConstants.FOO}.

Обратите внимание, что все java.lang.* классы уже неявно импортируются и доступны так ${Boolean.TRUE} и ${Integer.MAX_VALUE}. Для этого требуется только более поздний сервер контейнеров Java EE 7, поскольку в ранних версиях были ошибки. Например. GlassFish 4.0 и Tomcat 8.0.0-1x не работают, но GlassFish 4.1+ и Tomcat 8.0.2x + работают.

Этот объект доступен только в JSP, а не в Facelets. В случае JSF + Facelets лучше всего использовать OmniFaces , как показано ниже:


Или добавить прослушиватель контекста EL, который вызывает ImportHandler#importClass(), как показано ниже:

@ManagedBean(eager=true)
@ApplicationScoped
public class Config {

    @PostConstruct
    public void init() {
        FacesContext.getCurrentInstance().getApplication().addELContextListener(new ELContextListener() {
            @Override
            public void contextCreated(ELContextEvent event) {
                event.getELContext().getImportHandler().importClass("com.example.YourConstants");
            }
        });
    }

}

EL 2.2 или старше

Это невозможно в EL 2.2 и старше. Существует несколько альтернатив:

  1. Поместите их в Map, который вы помещаете в область приложения. В EL значения карты доступны обычным javabean способом ${map.key} или ${map['key.with.dots']}.
  2. Используйте в Unstandard taglib ( maven2 repo здесь ):
    <%@ taglib uri="http://jakarta.apache.org/taglibs/unstandard-1.0" prefix="un" %>
    
    
    Таким образом, они доступны обычным javabean способом ${constants.FOO}.
  3. Используйте Javaranch's CCC as описал где-то внизу эту статью .
    <%@ taglib uri="http://bibeault.org/tld/ccc" prefix="ccc" %>
    
    
    Таким образом, они доступны обычным javabean способом ${constants.FOO}.
  4. Если вы используете JSF2, вы можете использовать в OmniFaces .
    
    
    
    Таким образом, они доступны обычным javabean способом #{YourConstants.FOO}.
  5. Создайте класс-оболочку, который возвращает их с помощью методов getter в стиле Javabean.
  6. Создайте пользовательский EL, который сначала сканирует наличие константы и, если отсутствует, затем делегирует значение по умолчанию, вместо этого возвращает константное значение.
5
задан narek.gevorgyan 3 December 2012 в 09:37
поделиться

3 ответа

Чтобы зарегистрировать пользователя , этот покажет вам, как именно зарегистрировать его в базе данных, просто называя URL-адрес и добавляя к нему данные, используя GET Method . Теперь, чтобы сделать это из мобильного приложения, вам просто нужно сделать http-запрос к URL-адресу, содержащему все данные, необходимые для пользователя. Это покажет вам, как сделать запрос от Android.

Это просто для регистрации пользователей появится еще один плагин JSON APi Auth , используемый для упорядочения для входа в систему пользователя.

Это основы, так как у меня мало времени, когда я это сделаю, я предоставлю полную информацию и пример. Но пока это сделает это

3
ответ дан Community 19 August 2018 в 16:04
поделиться

Мне удалось выяснить как логин, так и регистрацию с помощью ссылки @Salam El-Bannas , если кому-то все еще нужно это здесь:

нужны два плагина для выполнения заданий:

Плагин WordPress JSON API

и

Пользователь JSON API

  1. Для регистрации пользователей: вам нужен идентификатор nonce, который будет частью параметров регистрации в процессе ввода GET (это обеспечивается плагинами). Прочтите ссылку @Salam El-Bannas ' для лучшего понимания. Методология, которую я использовал в android, заключалась в том, что сразу же нагрузка на страницы блокирует пользовательский интерфейс с сообщением «Подключение ...», а в фоновом режиме я получаю идентификатор nonce после его завершения. Блокировка пользовательского интерфейса исчезает, а идентификатор nonce добавляется к специальному не- -изменимое поле EditText, созданное для идентификатора nonce, пользователь затем вводит свои требуемые учетные данные, и я подтверждаю, что он действителен перед подключением к серверу с использованием идентификатора nonce ID, который я получил. результатом от сервера является JSON, поэтому я могу обрабатывать остальные в коде Android с помощью volley и GSON.
  2. Для входа пользователей: вам нужен только идентификатор cookie, созданный плагином, например, в моем случае http://localhost/mylocalhost/my_api_base/user/generate_auth_cookie/?insecure=cool&email=xxx@xdfer.org&password=xxxv678

, и результатом был этот json;

{"status":"ok","cookie":"xxxx|1486130938|Ot6yAX7iU773JnQ2zfE8sdmjt09LhHqDKSYBqtekuha|7fe58a35ab9f260c9bced9148f5cf9ae3ab56c16d7d9ce3b2db7da651d4d937d","cookie_name":"wordpress_logged_in_4132d8131ebbc6760d21627637bd4b20","user":{"id":1,"username":"administrator","nicename":"administrator","email":"xxx@xdfer.org","url":"","registered":"2016-11-02 17:46:19","displayname":"xxxx","firstname":"","lastname":"","nickname":"xxxxwedds","description":"","capabilities":"","avatar":null}}

, тогда вы должны прочитать этот хороший учебник , чтобы использовать полученный JSON в android (это если вы новичок в регистрации на Android) еще просто используйте свое усмотрение.

Это действительно действительно просто и интересно, как только вы следуете моему процессу.

5
ответ дан Adepoju-Conde Adesegun Chris. 19 August 2018 в 16:04
поделиться

1.Paste Следующий код в ваших файлах тем function.php.

2. Убедитесь, что плагин WP-REST-API должен быть установлен на сайте wordpress

add_action( 'rest_api_init', 'register_api_hooks' );

function register_api_hooks() {
  register_rest_route(
    'custom-plugin', '/login/',
    array(
      'methods'  => 'GET',
      'callback' => 'login',
    )
  );
}

function login($request){
    $creds = array();
    $creds['user_login'] = $request["username"];
    $creds['user_password'] =  $request["password"];
    $creds['remember'] = true;
    $user = wp_signon( $creds, false );

    if ( is_wp_error($user) )
      echo $user->get_error_message();

    return $user;
}

add_action( 'after_setup_theme', 'custom_login' );

Затем ваш API будет создан как

http://www.url.com/wp-json/custom-plugin/login?username=xyz&password=xyz

Попробуйте его с помощью Postman. Вы получите 200 в качестве ответа и user info

4
ответ дан Clemens Tolboom 19 August 2018 в 16:04
поделиться
  • 1
    Это самый простой способ увидеть все ответы, которые я нашел .. спасибо человеку. – Biskrem Muhammad 8 December 2017 в 21:28
  • 2
    хотя он дает мне ответ в браузере, но где бы я ни делал HTTP-запрос от android, или даже php, скрипт не видел никаких данных, android говорит: FileNotFoundExeption – Biskrem Muhammad 9 December 2017 в 16:00
  • 3
    – Nathan Moinvaziri 29 August 2018 в 12:40
Другие вопросы по тегам:

Похожие вопросы: