ログイン後オブジェクトプロパティのevent.session.device.initial_asnおよびevent.request.asnを使用して、その期間中セッショントランザクションと特定のautonomous system number (ASN)ネットワークをバインドして、ASNネットワークが変更した場合は再認証を要求できます。
Copy
Ask AI
exports.onExecutePostLogin = async (event, api) => { const sessionInitialAsn = event.session?.device?.initial_asn; const sessionCurrentAsn = event.request.asn; // if there is a session and the ASN changes if ( sessionInitialAsn && sessionCurrentAsn && sessionInitialAsn != sessionCurrentAsn ) { api.session.revoke( "Invalid network change. Login again from a trusted network" ) }};
exports.onExecutePostLogin = async (event, api) => { const sessionInitialIp = event.session?.device?.initial_ip; const sessionCurrentIp = event.request.ip; // if there is a session and the IP changes if ( sessionInitialIp && sessionCurrentIp && sessionInitialIp != sessionCurrentIp ) { api.session.revoke("Invalid IP change") }};
exports.onExecutePostLogin = async (event, api) => { const created = Date.parse(event.session?.created_at ?? ""); // desired session lifetime for this connection in milliseconds, configured as connection metadata const connection_lifetime = event.connection?.metadata?.session_timeout; // if there is a session lifetime defined for the connection, set it if (event.session?.id && connection_lifetime) { api.session.setExpiresAt(created + Number(connection_lifetime)); }};
exports.onExecutePostLogin = async (event, api) => { // The Organization metadata is configured with a shorter idle timeout for sessions (in milliseconds) const idle_organization_lifetime = event.organization?.metadata?.idle_session_timeout; // If the organization has an specific idle timeout defined, set the timeout if (event.session?.id && idle_organization_lifetime) { const current_time = new Date().getTime(); api.session.setIdleExpiresAt( current_time + Number(idle_organization_lifetime), ); }};