2013-10-08 81 views
2

我一直在嘗試創建一個使用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沒有區別 - 您可以參考Handle Post請求部分here

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