Authentication


Authentication 은 HSP 에서 기본으로 제공하는 API로 별도의 설정 없이 사용 가능하다.
Authentication는 허브와 HSP 간 동작 예제를 위해 만들어졌으며 사용자는 이 코드를 이용해 허브와 통신하는 데이터 구조와 헤더 정보등을 파악할 수 있다.


doLogin

doLogin 은 허브에 사용자 아이디와 사용자 비밀번호를 전달 하여 로그인을 요청하고 결과로 AuthToken 또는 세션을 전달 받는다.

Example

Executors.newSingleThreadExecutor().execute {
   val activity = this@MainActivity

   val header = hashMapOf<String, Any>()
   val msgContainer = MessageContainer(hashMapOf<String, Any>().apply {
       this["targetName"] = "hub1"
       this["serviceCategory"] = "default"
       this["serviceName"] = "login"
    }, HoneMobileMessage<Map<String, Any>>(header, hashMapOf<String, Any>().apply {
       this["username"] = "jim"
       this["password"] = "jim"
    }))

   // 3.10.18 이상
   DAPAuthentication.doLogin(activity, msgContainer, {
       // TODO
   }) { e ->
       // TODO
   }

   // 3.10.18 이하
   DAPAuthentication.doLogin(activity, msgContainer) { result, _ ->
       when (result) {
            OnResultListener.TRUE -> {
               // TODO
           }
           else -> {
               // TODO
           }
        }
    }
}

Executors.newSingleThreadExecutor().execute(() -> {
    Activity activity = MainActivity.this;

    Map<String, Object> context = new HashMap<>();
    context.put("targetName", "hub1");
    context.put("serviceCategory", "default");
    context.put("serviceName", "login");

    Map<String, Object> header = new HashMap<>();
    Map<String, String> loginInfo = new HashMap<>();
    loginInfo.put("username", "jim");
    loginInfo.put("password", "jim");

    HoneMobileMessage message = new HoneMobileMessage<Map>(header, loginInfo);
    MessageContainer msgContainer = new MessageContainer(context, message);

// 3.10.18 이상
   DAPAuthentication.doLogin(activity, msgContainer, result -> {
       // TODO
   }, e -> {
       // TODO
   });

// 3.10.18 이하
   DAPAuthentication.doLogin(activity, msgContainer, (result, value) -> {
       if (result == OnResultListener.TRUE) {
           // TODO
       } else {
           // TODO
       }
   });
});

doLogout

doLogout 은 허브에 로그인하여 전달 받은 AuthToken 삭제 하고 로그아웃 정보를 서버에 전달 한다. 

Example

Executors.newSingleThreadExecutor().execute {
   val activity = this@MainActivity

   val header = hashMapOf<String, Any>()
   val logoutInfo = hashMapOf<String, Any>()
   val msgContainer = MessageContainer(hashMapOf<String, Any>().apply {
       this["targetName"] = "hub1"
       this["serviceCategory"] = "default"
       this["serviceName"] = "logout"
    }, HoneMobileMessage<Map<String, Any>>(header, logoutInfo))

   // 3.10.18 이상
   DAPAuthentication.doLogout(activity, msgContainer, {
       // TODO
   }) { e ->
       // TODO
   }

   // 3.10.18 이하
   DAPAuthentication.doLogout(activity, msgContainer) { result, _ ->
       when (result) {
            OnResultListener.TRUE -> {
               // TODO
           }
           else -> {
               // TODO
           }
        }
    }
}
Executors.newSingleThreadExecutor().execute(() -> {
    Activity activity = MainActivity.this;

    Map<String, Object> context = new HashMap<>();
    context.put("targetName", "hub1");
    context.put("serviceCategory", "default");
    context.put("serviceName", "logout");

    Map<String, Object> header = new HashMap<>();
    Map<String, String> logoutInfo = new HashMap<>();

    HoneMobileMessage message = new HoneMobileMessage<Map>(header, logoutInfo);
    MessageContainer msgContainer = new MessageContainer(context, message);

// 3.10.18 이상
   DAPAuthentication.doLogout(activity, msgContainer, value -> {
       // TODO
   }, e -> {
       // TODO
   });

// 3.10.18 이하
   DAPAuthentication.doLogout(activity, msgContainer, (result, value) {
       if (result == OnResultListener.TRUE) {
           // TODO
       } else {
           // TODO
       }
   });
});