Web应用程序和本机应用程序的身份验证

时间:2014-04-29 00:35:17

标签: android authentication

我们有一个可以通过浏览器访问的Web应用程序,现在我们为应用程序创建一个Android应用程序,然后他们应该共享相同的后端。

对于身份验证,通常浏览器会(或可能)将用户信息保存在cookie中,并通过每个 http(s)请求将cookie发送到服务器,然后是服务器会相应地将内容放在页面中。

现在对于Android中的应用程序,我不知道如何制作它。我不是指如何将身份验证请求发送到服务器,对于此问题,我可以参考this post

我感到困惑的是,一旦我将用户ID和密码发送到服务器并获得成功的响应,下一个请求怎么样?我应该将经过身份验证的用户信息绑定到服务器的每个请求,就像浏览器那样,或者我只是将authenticated=true|false这样的标记保存到首选项中?

我希望有人可以提供一些建议。


也许我不够清楚自己。我会举一个例子。

假设我有一个Web应用程序,其页面名为" followers.jsp"这将显示当前签名用户的关注者。通常,我们进行身份验证从数据库中获取关注者,然后将其弹出到以下页面:

followers.jsp:

User u=Session.get("user");
if(u==null){
  //no authenticated redirect to login page 
}else{
  List followersList=getFollowers(u);
  requset.setAttribute("followers",followersList);
}

然后直接渲染jsp页面。

现在我们为我们的产品创建一个Android应用程序,然后当用户使用我们的应用程序时,他将登录并查看他的粉丝,此时,我们必须创建一个进行身份验证的Web服务并返回数据,然后应用程序将呈现它们。 Web服务可能如下所示:

API / getFollowers.xx

User u= // here we must get something to identify a user from the request information maybe a token or something else? 
List followersList=getFollowers(u);
return toJson(followersList);

现在我们发现我们的" followers.jsp"页面和我们的服务将执行相同的工作(身份验证,读取数据库,返回数据),然后为什么不使用Web服务,因为我们可以使用ajax,这将提供更好的用户体验来获取和呈现数据" followers.jsp"?

如果是这样,如何为pc和android客户端建立统一的身份验证机制?

1 个答案:

答案 0 :(得分:-1)

如果网站要求对每个请求进行身份验证,那么您需要发送身份验证数据。如果它没有,那么我首先从网络或安卓上看不到认证的重点,因为任何人都可以发送请求并在没有任何凭据的情况下获得响应。如果您不想每次都发送密码,您可以创建并发送临时身份验证令牌,但这需要对Web服务进行一些更改。