@smartbit4all/session-nextjs
v1.0.1
Published
---
Downloads
3
Keywords
Readme
Smart Session for NextJS
How to use
Installation
Go to your project, open the terminal and use the following command:
npm i cookie-cutter@^0.2.0
npm i @smartbit4all/session-nextjs
Usage
In order to use the SmartSessionService I recommend to follow the guideline belove.
Create a service which will handle the session and the authentication.
Terminal:
>>> mkdir services
*/services/authentication.service.ts:
import { Injectable } from "@smartbit4all/di-provider";
@Injectable
@Provide([SmartSessionService])
export class AuthenticationService {
private url?: string;
constructor(private session: SmartSessionService) {
this.session.setUrl("http://localhost:3000/api");
this.session.setCookieName("example-jwt");
this.startSession();
}
async startSession(): Promise<void> {
await this.session.initialize();
}
async getSession(): Promise<SessionInfoData> {
return this.session.getSession();
}
async isAuthenticated(): Promise<boolean> {
return this.session.getIsAuthenticated();
}
}
Use dependency injection to inject this new service into your component(s). You must inject this into all components which the application could start with (for instance AppComponent or LoginComponent).
any.component.ts:
import { Provide } from "@smartbit4all/di-provider";
@Provide([AuthenticationService])
class Any extends React.Component<any> {
constructor(props: any, private authentication: AuthenticationService) {
super(props);
}
}
The AuthenticationService must be prepared to use the SmartSessionService.
authentication.service.ts:
Authentication state changed
The change of authentication state can be detected in any components. To handle it you must subscribe to the change itself.
Note that in this version a user is authenticated when the response of the GET session contains a list of authentications.
this.isAuthenticated = response.authentications.length > 0
any.component.ts:
constructor(
private auth: AuthenticationService,
private session: SmartSessionService
) {
this.session.authenticationStateChanged.subscribe((isAuth: boolean) => {
...
});
}
Version logs
@smartbit4all/session-nextjs v1.0.1
Type: Update
The package has been published.