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);
}
});
}