2017-06-15 32 views
0

成功的Java休息登錄後,如何將成功返回給AngularJS?

app.register.factory('AuthenticationService', ['Base64','$http','$cookieStore','$rootScope','$timeout', 
 
\t            function(Base64,$http,$cookieStore,$rootScope,$timeout){ 
 
\t \t var service = {}; 
 
\t \t 
 
\t \t service.Login= function(username,password,callback) { 
 
\t \t \t 
 
\t \t \t var encodedString = 'username=' + encodeURIComponent(username) + '&password=' + encodeURIComponent(password); 
 
\t \t \t var baseUrl = "https://localhost:450/rest/"; 
 
\t \t \t $http({ 
 
\t \t \t \t method:'POST', 
 
\t \t \t \t url:baseUrl + 'dns/loginResource', 
 
\t \t \t \t data:encodedString, 
 
\t \t \t \t headers: {'Content-Type' : 'application/x-www-form-urlencoded'} 
 
\t \t \t  
 
\t \t \t }).success(function(response) { 
 
\t \t \t \t 
 
\t \t \t \t callback(response); 
 
\t \t \t });

我有這樣的代碼在前端一側成功發送憑據路徑

@Path("/dns/loginResource") 
@POST 
@Produces("application/json") 
@Consumes("application/x-www-form-urlencoded") 
public String queryAuthenticationData(@FormParam("username") String USER_NAME, @FormParam("password") String PASS_WORD) 
{ 


    Password HashPass = new Password(); 
    try { 
     //PASS_WORD=HashPass.getSaltedHash(PASS_WORD); 
     Login log = new Login(USER_NAME,PASS_WORD); 
     ResultSet UserDetailsSet; 
     System.out.println("queryAuthenticationData metodu içinde..."); 
     UserDetailsSet = log.connect(); 
    } catch (Exception e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 


    return ""; 

} 

而這種代碼也可以運行,它登錄並返回結果集,以UserDetailsS​​et。

我的問題是我如何與前端代碼進行通信,以便成功登錄(所以回覆爲真)。 另外我如何發送由用戶名,用戶名,密碼組成的結果集信息給AngularJS代碼。

+0

您可以發送,這將有加密的用戶信息,並和狀態碼的響應對象。對於成功的Eg- 200狀態代碼 –

+0

您可以舉個例子。我是前端開發新手 –

+0

從queryAuthenticationData或任何對象返回「成功」。你可以在$ http成功函數中獲得。 – jos

回答

0

使用HTTP狀態代碼,請參閱http://www.restapitutorial.com/httpstatuscodes.html的所有可用狀態的列表。

從您的前端應用程序,檢查請求的響應HTTP狀態代碼來處理不同的場景(例如,一個有效的認證請求將與200 OK響應狀態,當你可以用401 Unauthorized狀態迴應請求無效) 。

HTTP status responses可以使用設置:

// respond with 200 OK 
return Response.ok(json, MediaType.APPLICATION_JSON).build(); 

// respond with other status 
return Response.status(Status.NO_CONTENT).build();