servicestack,Authentication,Cookies,Client,servicestack" /> servicestack,Authentication,Cookies,Client,servicestack" />

Authentication 是否可以验证ServiceStack的身份验证cookie客户端?

Authentication 是否可以验证ServiceStack的身份验证cookie客户端?,authentication,cookies,client,servicestack,Authentication,Cookies,Client,servicestack,我有一个HTMLAngular站点,它有一个登录按钮,当用户通过身份验证时,当然需要提供一个不同的GUI。我正在使用基于ServiceStack的REST服务。现在,当用户成功通过身份验证时,我想知道是否可以仅在客户端上通过ServiceStack检查生成的身份验证cookie。我只需要检查用户ID,可能是角色和cookie的过期日期。优点是我不必进行“CheckUserIsAuthenticated”服务器rest调用,仅用于显示源CRUD操作在服务器端验证的不同GUI 您可以使用docume

我有一个HTMLAngular站点,它有一个登录按钮,当用户通过身份验证时,当然需要提供一个不同的GUI。我正在使用基于ServiceStack的REST服务。现在,当用户成功通过身份验证时,我想知道是否可以仅在客户端上通过ServiceStack检查生成的身份验证cookie。我只需要检查用户ID,可能是角色和cookie的过期日期。优点是我不必进行“CheckUserIsAuthenticated”服务器rest调用,仅用于显示源CRUD操作在服务器端验证的不同GUI

您可以使用document.cookie检查cookie是否存在,因为很难直接使用Mozilla提供的,以使其更易于使用,同样,AngularJS提供了提供程序

但是cookie不会告诉您关于用户的任何信息,因为即使是未经身份验证/匿名的用户也会有cookie。相反,要检查用户是否经过身份验证,您可以通过ajax调用/auth route,经过身份验证后,ServiceStack将返回有关用户的摘要信息,例如:

{

    UserId: "1",
    SessionId: "{sessionId}",
    UserName: "user@gmail.com",
    DisplayName: "First Last"
}

如果用户未经身份验证/auth将返回401 Unauthorized。

谢谢您的想法。我现在的结论是:1。在服务器上登录并进行身份验证。2.成功身份验证后,我使用本地存储存储所需的信息名称、电子邮件、超时、角色。这样,我就不必每次需要对页面进行一些简单的GUI调整时都去服务器。从安全角度来看,这不会造成真正的威胁,因为最终严重的操作总是在服务器上重新验证。