OAuth Users
Creating Users
local api = core.api()
function api.createAuthUser(input, scope)
--check if user already exists with provider
local user, err = core.users.getWithProvider(
scope,
core.FACEBOOK,
input.client_id)
if not user then --a user does not exist
--Create a custom anonymous Coronium user.
--On success marks a "join" and "login" event.
local user_id, err = core.users.register(nil, nil, scope, {
login = true
})
if not user_id then
core.log(err)
else
--Link user with OAuth provider info
local res, err = core.users.addAuthProvider(user_id, core.FACEBOOK, {
client_id = input.client_id,
access_token = input.access_token,
access_token_expiry = input.access_token_expires
})
if not res then
core.log(err)
else
-- user is created and linked with auth provider.
end
end
end
return true
end
return api
Logging In
local api = core.api()
function api.loginAuthUser(input, scope)
local user, err = core.users.login({
scope = scope,
provider = core.FACEBOOK,
client_id = input.client_id
})
if not user then
--user does not exist, create one (see Creating Users above).
return api.createAuthUser(input, scope)
else
--user exists and a "login" event has been marked.
--check and update access_token if needed
if user.oauth.acess_token_expired then
local res, err = core.users.updateAuthProvider(
user.user_id,
core.FACEBOOK,
{
access_token = input.access_token,
access_token_expiry = input.access_token_expires
})
end
return user
end
end
return api