curl --request GET \
--url https://pria.praxislxp.com/api/auth/google/services/callbackimport requests
url = "https://pria.praxislxp.com/api/auth/google/services/callback"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://pria.praxislxp.com/api/auth/google/services/callback', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://pria.praxislxp.com/api/auth/google/services/callback",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://pria.praxislxp.com/api/auth/google/services/callback"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://pria.praxislxp.com/api/auth/google/services/callback")
.asString();require 'uri'
require 'net/http'
url = URI("https://pria.praxislxp.com/api/auth/google/services/callback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyGoogle Services OAuth callback
Google redirects here after the user accepts (or rejects) the consent screen.
Validates the CSRF state against req.session.oauth_state, exchanges the
authorization code for tokens, then stores them on UserInstitution.googleLoginToken
or User.googleLoginToken depending on the institution context captured at
authorize time.
On success the user is redirected to ${PRIA_URL}/my-profile/me?oauth=google&status=success
(profile origin) or ${PRIA_URL}/pria/personal/qanda (chat origin). On failure the user
is redirected to ${PRIA_URL}/oauth/success?error=<code> where the SPA renders the
error. This callback is not a JWT-protected endpoint — auth is proven by the
session-bound CSRF state, identical to the public OAuth login callbacks.
curl --request GET \
--url https://pria.praxislxp.com/api/auth/google/services/callbackimport requests
url = "https://pria.praxislxp.com/api/auth/google/services/callback"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://pria.praxislxp.com/api/auth/google/services/callback', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://pria.praxislxp.com/api/auth/google/services/callback",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://pria.praxislxp.com/api/auth/google/services/callback"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://pria.praxislxp.com/api/auth/google/services/callback")
.asString();require 'uri'
require 'net/http'
url = URI("https://pria.praxislxp.com/api/auth/google/services/callback")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_bodyQuery Parameters
Authorization code returned by Google. Required on success.
CSRF state to compare against req.session.oauth_state.value.
Set by Google when the user denies consent or the request is malformed.
Response
Always a redirect. On success → profile or chat page (per the captured origin).
On any failure (missing code, state mismatch, token exchange error) →
${PRIA_URL}/oauth/success?error=<code>.
Was this page helpful?