diff mod_http_oauth2/mod_http_oauth2.lua @ 3908:8ac5d9933106

mod_http_oauth2: Implement real tokens using mod_authtokens
author Matthew Wild <mwild1@gmail.com>
date Wed, 26 Feb 2020 17:57:53 +0000
parents cfeb93b80621
children 80dffbbd056b
line wrap: on
line diff
--- a/mod_http_oauth2/mod_http_oauth2.lua	Tue Feb 25 23:33:55 2020 +0100
+++ b/mod_http_oauth2/mod_http_oauth2.lua	Wed Feb 26 17:57:53 2020 +0000
@@ -1,11 +1,11 @@
-module:set_global();
-
 local http = require "util.http";
 local jid = require "util.jid";
 local json = require "util.json";
 local usermanager = require "core.usermanager";
 local errors = require "util.error";
 
+local tokens = module:depends("authtokens");
+
 local function oauth_error(err_name, err_desc)
 	return errors.new({
 		type = "modify";
@@ -17,9 +17,11 @@
 end
 
 local function new_access_token(username, host, scope, ttl)
+	local token_jid = jid.join(username, host);
+	local token = tokens.create_jid_token(token_jid, token_jid, scope, ttl);
 	return {
 		token_type = "bearer";
-		access_token = "test-token";
+		access_token = token;
 		expires_in = ttl;
 		-- TODO: include refresh_token when implemented
 	};
@@ -34,7 +36,7 @@
 	if params.scope then
 		return oauth_error("invalid_scope", "unknown scope requested");
 	end
-	if not (request_username and request_host) or not (hosts[request_host]) then
+	if not (request_username and request_host) or request_host ~= module.host then
 		return oauth_error("invalid_request", "invalid JID");
 	end
 	if usermanager.test_password(request_username, request_host, request_password) then