Rikulo безопасность входа на стороне клиента

Я пытался создать Dart SPA с использованием безопасности Rikulo для входа в систему. Я не смог сделать это успешно. Я нашел следующее в документах:

//If you'd like to login in an Ajax request, SOAP or others,             
//you can invoke this method directly by providing the username, password
//and, optional, rememberMe:                                             

    //prepare username, password, rememberMe from, say, Ajax           
    security.login(connect, username: username, password: password,    
      rememberMe: rememberMe, redirect: false);

Мой вопрос заключается в том, как вернуть значение успешной / неудачной регистрации в системе безопасности Rikulo для использования на стороне клиента. Пример был бы чрезвычайно полезным. Заранее спасибо.

1 ответ

Решение

Я предполагаю, что вы хотите войти через Ajax (и JSON). По сути, это ничем не отличается от обработки Ajax - вы можете обратиться к разделу "Обработка запросов на публикацию" здесь.

import "dart:convert";
import "package:rikulo_commons/convert.dart";

Future login(HttpConnect connect) {
  return readAsJson(connect.request).then((Map<String, String> data) {
     return security.login(connect, redirect: false, 
        username: data["username"],
        password: data["password"]);
 })
 .then((_) {
    //login successfully
    response
      ..headers.contentType = contentTypes["json"]
      ..write(JSON.encode({"result": "success"}));
  })
  .catchError((ex) {
    if (ex is AuthenticationException) {
      // login fail
      response
        ..headers.contentType = contentTypes["json"]
        ..write(JSON.encode({'result': 'fail'}));
    } else {
      throw new Http404.fromConnect(connect);
    }
  });
}
Другие вопросы по тегам