Node.JS - Foal 프레임워크 - 버전 2.2가 출시되었습니다.
6005 단어 nodetypescriptjavascriptwebdev
Foal 프레임워크의 버전 2.2가 출시되었습니다! 이것이 가져다주는 개선 사항은 다음과 같습니다.
createapp 명령의 새로운 모습
createapp
명령의 출력이 더 "환영"하도록 꾸며졌습니다.단일 페이지 애플리케이션(SPA)에 대한 인증 개선
쿠키 기반 인증으로 SPA를 구축할 때 때때로 사용자가 로그인했는지 또는 사용자에 대한 특정 정보를 얻기가 어려울 수 있습니다(
isAdmin
등).인증 토큰은
httpOnly
지시문이 true
로 설정된 쿠키에 저장되기 때문에(XSS 공격을 완화하기 위해) 프런트 엔드 애플리케이션은 추가 요청을 제외하고는 사용자가 로그인했는지 알 수 있는 방법이 없습니다. 서버에.이 문제를 해결하기 위해 버전 2.2에는 선택한 콘텐츠로 프런트엔드에서 읽을 수 있는 추가 쿠키를 설정할 수 있는 새로운 옵션
userCookie
이 추가되었습니다. 이 쿠키는 세션과 동기화되며 요청이 있을 때마다 새로 고쳐지고 세션이 만료되거나 사용자가 로그아웃하면 삭제됩니다.다음 예에서
user
쿠키는 로그인한 사용자가 없으면 비어 있거나 사용자에 대한 특정 정보를 포함합니다. 이는 사용자 특성에 따라 UI 요소를 표시해야 하는 경우에 특히 유용합니다.서버 측 코드
function userToJSON(user: User|undefined) {
if (!user) {
return 'null';
}
return JSON.stringify({
email: user.email,
isAdmin: user.isAdmin
});
}
@UseSessions({
cookie: true,
user: fetchUser(User),
userCookie: (ctx, services) => userToJSON(ctx.user)
})
export class ApiController {
@Get('/products')
@UserRequired()
async readProducts(ctx: Context) {
const products = await Product.find({ owner: ctx.user });
return new HttpResponseOK(products);
}
}
쿠키
클라이언트 측 코드
const user = JSON.parse(decodeURIComponent(/* cookie value */));
foal generate|g rest-api <name>에서 중첩 경로 지원
g controller
명령과 마찬가지로 g rest-api
는 이제 중첩 경로를 지원합니다.다음과 같은 파일 구조가 있다고 가정해 보겠습니다.
src/
'- app/
|- controllers/
| |- api.controller.ts
| '- index.ts
'- entities/
|- user.entity.ts
'- index.ts
이 명령을 실행하면 다음 파일이 추가되고 등록됩니다.
foal generate rest-api api/product --auth --register
foal generate rest-api api/order --auth --register
src/
'- app/
|- controllers/
| |- api/
| | |- product.controller.ts
| | |- order.controller.ts
| | '- index.ts
| |- api.controller.ts
| '- index.ts
'- entities/
|- product.entity.ts
|- order.entity.ts
|- user.entity.ts
'- index.ts
Reference
이 문제에 관하여(Node.JS - Foal 프레임워크 - 버전 2.2가 출시되었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/loicpoullain/node-js-foal-framework-version-2-2-is-here-55fb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)