mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
feat(sessions): populate geo fields from GeoRecord on session create
This commit is contained in:
@@ -147,6 +147,18 @@ $createSession = function (string $userId, string $secret, Request $request, Res
|
||||
'ip' => $request->getIP(),
|
||||
'factors' => [$factor],
|
||||
'countryCode' => $geoRecord->getCountryCode(),
|
||||
'continentCode' => $geoRecord->getContinentCode() === '--' ? null : $geoRecord->getContinentCode(),
|
||||
'latitude' => $geoRecord->getAttribute('latitude'),
|
||||
'longitude' => $geoRecord->getAttribute('longitude'),
|
||||
'timeZone' => $geoRecord->getAttribute('timeZone'),
|
||||
'weatherCode' => $geoRecord->getAttribute('weatherCode'),
|
||||
'postalCode' => $geoRecord->getAttribute('postalCode'),
|
||||
'autonomousSystemNumber' => $geoRecord->getAttribute('autonomousSystemNumber'),
|
||||
'autonomousSystemOrganization' => $geoRecord->getAttribute('autonomousSystemOrganization'),
|
||||
'geoConnectionType' => $geoRecord->getAttribute('connection'),
|
||||
'geoUserType' => $geoRecord->getAttribute('user'),
|
||||
'geoOrganization' => $geoRecord->getAttribute('organization'),
|
||||
'isp' => $geoRecord->getAttribute('isp'),
|
||||
'expire' => DateTime::addSeconds(new \DateTime(), $duration)
|
||||
],
|
||||
$detector->getOS(),
|
||||
@@ -961,6 +973,18 @@ Http::post('/v1/account/sessions/email')
|
||||
'ip' => $request->getIP(),
|
||||
'factors' => ['password'],
|
||||
'countryCode' => $geoRecord->getCountryCode(),
|
||||
'continentCode' => $geoRecord->getContinentCode() === '--' ? null : $geoRecord->getContinentCode(),
|
||||
'latitude' => $geoRecord->getAttribute('latitude'),
|
||||
'longitude' => $geoRecord->getAttribute('longitude'),
|
||||
'timeZone' => $geoRecord->getAttribute('timeZone'),
|
||||
'weatherCode' => $geoRecord->getAttribute('weatherCode'),
|
||||
'postalCode' => $geoRecord->getAttribute('postalCode'),
|
||||
'autonomousSystemNumber' => $geoRecord->getAttribute('autonomousSystemNumber'),
|
||||
'autonomousSystemOrganization' => $geoRecord->getAttribute('autonomousSystemOrganization'),
|
||||
'geoConnectionType' => $geoRecord->getAttribute('connection'),
|
||||
'geoUserType' => $geoRecord->getAttribute('user'),
|
||||
'geoOrganization' => $geoRecord->getAttribute('organization'),
|
||||
'isp' => $geoRecord->getAttribute('isp'),
|
||||
'expire' => DateTime::addSeconds(new \DateTime(), $duration)
|
||||
],
|
||||
$detector->getOS(),
|
||||
@@ -1142,6 +1166,18 @@ Http::post('/v1/account/sessions/anonymous')
|
||||
'ip' => $request->getIP(),
|
||||
'factors' => ['anonymous'],
|
||||
'countryCode' => $geoRecord->getCountryCode(),
|
||||
'continentCode' => $geoRecord->getContinentCode() === '--' ? null : $geoRecord->getContinentCode(),
|
||||
'latitude' => $geoRecord->getAttribute('latitude'),
|
||||
'longitude' => $geoRecord->getAttribute('longitude'),
|
||||
'timeZone' => $geoRecord->getAttribute('timeZone'),
|
||||
'weatherCode' => $geoRecord->getAttribute('weatherCode'),
|
||||
'postalCode' => $geoRecord->getAttribute('postalCode'),
|
||||
'autonomousSystemNumber' => $geoRecord->getAttribute('autonomousSystemNumber'),
|
||||
'autonomousSystemOrganization' => $geoRecord->getAttribute('autonomousSystemOrganization'),
|
||||
'geoConnectionType' => $geoRecord->getAttribute('connection'),
|
||||
'geoUserType' => $geoRecord->getAttribute('user'),
|
||||
'geoOrganization' => $geoRecord->getAttribute('organization'),
|
||||
'isp' => $geoRecord->getAttribute('isp'),
|
||||
'expire' => DateTime::addSeconds(new \DateTime(), $duration)
|
||||
],
|
||||
$detector->getOS(),
|
||||
@@ -1936,6 +1972,18 @@ Http::get('/v1/account/sessions/oauth2/:provider/redirect')
|
||||
'ip' => $request->getIP(),
|
||||
'factors' => [TYPE::EMAIL, 'oauth2'], // include a special oauth2 factor to bypass MFA checks
|
||||
'countryCode' => $geoRecord->getCountryCode(),
|
||||
'continentCode' => $geoRecord->getContinentCode() === '--' ? null : $geoRecord->getContinentCode(),
|
||||
'latitude' => $geoRecord->getAttribute('latitude'),
|
||||
'longitude' => $geoRecord->getAttribute('longitude'),
|
||||
'timeZone' => $geoRecord->getAttribute('timeZone'),
|
||||
'weatherCode' => $geoRecord->getAttribute('weatherCode'),
|
||||
'postalCode' => $geoRecord->getAttribute('postalCode'),
|
||||
'autonomousSystemNumber' => $geoRecord->getAttribute('autonomousSystemNumber'),
|
||||
'autonomousSystemOrganization' => $geoRecord->getAttribute('autonomousSystemOrganization'),
|
||||
'geoConnectionType' => $geoRecord->getAttribute('connection'),
|
||||
'geoUserType' => $geoRecord->getAttribute('user'),
|
||||
'geoOrganization' => $geoRecord->getAttribute('organization'),
|
||||
'isp' => $geoRecord->getAttribute('isp'),
|
||||
'expire' => DateTime::addSeconds(new \DateTime(), $duration)
|
||||
], $detector->getOS(), $detector->getClient(), $detector->getDevice()));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user