ngx-cookie (英语)

向Angular提供1.x美元cookies服务
目录 :
开始
安装
您可以用 npm 在本地安装此软件包 .
# To get the latest stable version and update package.json file:
yarn add ngx-cookie
# or
# npm install ngx-cookie --save
使用量
CookieModule 应在角模组中注册 withOptions() 静态方法.
这些方法接受 CookieOptions 物体也一样。 留空为缺省.
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { CookieModule } from 'ngx-cookie';
import { AppComponent } from './app.component';
@NgModule({
imports: [ BrowserModule, CookieModule.withOptions() ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
import { Component } from '@angular/core';
import { CookieService } from 'ngx-cookie';
@Component({
selector: 'my-very-cool-app',
template: '<h1>My Angular App with Cookies</h1>'
})
export class AppComponent {
constructor(private cookieService: CookieService){}
getCookie(key: string){
return this.cookieService.get(key);
}
}
服务器侧面渲染
ngx-cookie 支持服务器侧面渲染(SSR / Angular Universal)期间的用法. 首次设置服务器侧面渲染本身可能很棘手,并不属于本指南的范围. 在这里,我们将假设 你有一个工作 SSR 设置类似 角力通用启动器项目,你只是想获得 ngx-cookie 与SSR合作.
注:在正常客户端使用时, ngx-cookie 操作附在其中的客户端 cookie document 对象。 在安全部门改革期间, ngx-cookie 将操作 http 请求或响应头中的 cookie 。
设置
安装 ngx-cookie-backend 库 :
yarn add ngx-cookie-backend
# or
# npm install ngx-cookie-backend --save
然后编辑 app.server.module.ts 添加 CookieBackendModule.withOptions() 进口量:
/* app.server.module.ts */
import { CookieBackendModule } from 'ngx-cookie';
@NgModule({
imports: [
AppModule,
ServerModule,
CookieBackendModule.withOptions()
],
bootstrap: [AppComponent]
})
export class AppServerModule {}
接下来,我们需要让供应商 'REQUEST' 财务报告和审定财务报表 'RESPONSE' sSR期间由快取服务器创建的对象。 要做到这一点,请编辑 server.ts 创建提供者 'REQUEST' 和 'RESPONSE'。 。 。 .
/* server.ts */
// All regular routes use the Universal engine
server.get('*', (req, res) => {
res.render(indexHtml, {
req,
res,
providers: [
{provide: APP_BASE_HREF, useValue: req.baseUrl},
{provide: REQUEST, useValue: req},
{provide: RESPONSE, useValue: res}
]
});
});
就这样! 你申请的所有电话 CookieService 现在应该正常工作 在安全部门改革期间!
实例
一般使用示例如下 projects/test-app
安全部门改革使用实例列于下 projects/backend-test-app
饼干服务
现有7种方法 CookieService (6个标准方法来自 角 1 和1个额外 removeAll() 方便方法)
获取()
返回给定 cookie 键的值 .
/**
* @param {string} key Id to use for lookup.
* @returns {string} Raw cookie value.
*/
get(key: string): string;
获取对象( )
返回给定 cookie 键的去序列化值 .
/**
* @param {string} key Id to use for lookup.
* @returns {Object} Deserialized cookie value.
*/
getObject(key: string): Object;
获取全部( E)
与所有 cookie 一起返回密钥值对象 .
/**
* @returns {Object} All cookies
*/
getAll(): any;
设置( )
设置给定的 cookie 密钥的值.
/**
* @param {string} key Id for the `value`.
* @param {string} value Raw value to be stored.
* @param {CookieOptions} options (Optional) Options object.
*/
put(key: string, value: string, options?: CookieOptions): void;
设置对象( )
序列化并设定给定饼干密钥的值 .
/**
* @param {string} key Id for the `value`.
* @param {Object} value Value to be stored.
* @param {CookieOptions} options (Optional) Options object.
*/
putObject(key: string, value: Object, options?: CookieOptions): void;
删除( )
删除给定的饼干 .
/**
* @param {string} key Id of the key-value pair to delete.
* @param {CookieOptions} options (Optional) Options object.
*/
remove(key: string, options?: CookieOptions): void;
删除全部( C)
拿掉所有的饼干.
/**
*/
removeAll(): void;
选项
选项对象应为类型 CookieOptions 接口。 该对象可能具有以下属性:
- 路径 - [弦声] - 饼干只能用于此路径及其子路径. 默认情况下, 这是您中显示的 URL
<base>标签. - 域名 - [弦声] - 该 cookie 仅可用于此域及其子域. 出于安全原因,如果当前域不是此域的子域或与其等同,用户代理将不接受该cookie.
- 过期 - {string Date} - 字符串“Wdy, DD Mon YYYY HH:MM:SS GMT”或表示准确日期/时间的日期对象.
- 安全 - 狦
true,则饼干只能通过安全连接提供. - 同块 - {"Lax""Strett""None"} - 指定饼干,用于第一方(Lax-Q)或第三方上下文.
- 仅限 httply - 狦
true,然后饼干将与HttpOnly旗帜,并且只能从远程服务器访问。 有助于防止XSS攻击. - 存储未编码 - 狦
true,那么饼干值将不会被编码,并将按规定被存储.