Tools and information for 3rd party integrators
SmartCentral and Kindyhub Admin supports the OpenID Connect specification as an Identity Provider.
Resources for specifications and sample code libraries:
FAQ
Our OpenID entry point for staging is:
To get JWK public keys :
Create your own test account :
http://test.smartcentral.net/authorizations/new/?client_id=fancy_app&response_type=id_token%20token&scope=openid%20email&nonce=1234&redirect_uri=http://localhost:3001/auth
SmartCentral redirects end user to login page if not logged in, after end user’s authorisation, send the following fields (http form fields encoded) to redirect_uri provided by 3rd party.
After 3rd party received id_token (JWT format), the id token should be verified using the public key provided by SmartCentral http://test.smartcentral.net/jwks.json
To get readble information of the user, 3rd party sends GET request with access token returned by SmartCentral to http://test.smartcentral.net/user_info?access_token=abcd
User info returns the following fields:
The following resources contain information on enabling the use of AD to be an OpenID identity provider:
SmartCentral has implemented GraphQL to support an extensible integration method for api access to centre data.
Graphql is currently implemented with persistent token based authentication for fast server to server comms.
Contact us for end points and authentication when you are ready.
Schema definition is here.
{
"query": "{
service(id: 1) {
id
enrolments {
id
status
startDate
}
}
}"
}
{
"query": "{
service(id: 1) {
id
enrolments(id: \"sfdev_22020\") {
id
status
startDate
child {
dateOfBirth
contacts {
firstName
}
}
parent1 {
firstName
email
}
parent2 {
lastName
phone
}
}
}
}"
}
{
"query": "{
service(id: 472) {
id
sessions(date: \"2020-08-06\") {
room
enrolmentId
fee
startTime
endTime
absent
}
}
}"
}
{
"query": "{
service(id: 472) {
id
sessions(date: \"2020-08-06T17:00:01Z\") {
room
absent
}
}
}"
}
{
"query": "{
service(id: 472) {
id
bookedSessions(startDate: \"2021-12-20\", roomId: \"sfsta_762\") {
enrolmentId
room
roomId
code
sessionCodeId
fee
startTime
endTime
absent
}
}
}"
}
The type of application https://brave-sack.surge.sh/object/app/
{
"query": "{
service(id: 1) {
applications(status: \"submitted\") {
id
plannedStartDate
plannedDays
childFirstName
parentLastName
childDob
}
}
}"
}
https://brave-sack.surge.sh/object/staffatt/
{
"query": "{
service(id: 976) {
staffAtts(date: \"2019-05-15\") {
in
out
date
firstName
roomName
unpaid
}
}
}"
}