2

我一直在尝试使用 Rikulo 安全登录创建 Dart SPA。我一直无法成功。我在文档中找到了以下内容:

//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 安全返回成功/失败登录值以供客户端使用。一个例子将非常有帮助。提前致谢。

4

1 回答 1

1

我假设您想通过 Ajax(和 JSON)登录。基本上,它与处理 Ajax 没有什么不同——您可以参考这里的处理 Post 请求部分。

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);
    }
  });
}
于 2013-10-09T13:43:24.700 回答