Php Angular 5中基于cookies的身份验证
我正在使用Angular 5和ExpressJS开发一个网站。成功登录后,我将从服务器向客户端发送access\u tokencookie。浏览器中的Cookie设置成功。但当我在登录后发送其他请求时,访问令牌cookie不会像通常的客户机-服务器通信(会话cookie)那样自动发送。我的问题是Php Angular 5中基于cookies的身份验证,php,angular,express,angular5,Php,Angular,Express,Angular5,我正在使用Angular 5和ExpressJS开发一个网站。成功登录后,我将从服务器向客户端发送access\u tokencookie。浏览器中的Cookie设置成功。但当我在登录后发送其他请求时,访问令牌cookie不会像通常的客户机-服务器通信(会话cookie)那样自动发送。我的问题是 我的实现正确吗 我需要使用拦截器吗 我是否需要使用头来发送令牌而不是cookie 如果您的服务器和客户端在不同的端口上运行,那么您的所有XMLHttpRequest 您应该使用以下拦截器: @Inje
- 我的实现正确吗李>
- 我需要使用拦截器吗李>
- 我是否需要使用头来发送令牌而不是cookie
XMLHttpRequest
您应该使用以下拦截器:
@Injectable()
export class CustomInterceptor implements HttpInterceptor {
constructor() {
}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
request = request.clone({
withCredentials: true
});
return next.handle(request);
}
}
@Injectable()
导出类CustomInterceptor实现HttpInterceptor{
构造函数(){
}
拦截(请求:HttpRequest,下一步:HttpHandler):可观察{
request=request.clone({
证书:正确
});
下一步返回。处理(请求);
}
}
当使用cookie时,它们会在下一页加载时被接收,它们不会立即可用-您需要在服务时强制使用页面刷新,因此对于angular应用程序cookie来说并不常见,对吗?Sam Swift说了什么,因为angular在单个页面中呈现视图,页面刷新永远不会发生,除非显式完成,因此Cookie不会提供太多帮助。更好的方法是发送标头中的令牌,然后使用HTTP拦截器将其存储在客户端(本地存储),尽管拦截器是可选的。您是否在Angular development服务器上配置了代理,以便在相同的主机名和端口上运行您的客户端和服务器?两者都在相同的服务器上运行。但我不知道设置代理。我在哪里可以找到更多关于它的信息?