Module: JPSClient::Endpoints

Defined in:
lib/jpsclient/auth/endpoints.rb

Overview

登录/凭证相关的 host 与本地路径解析。

对齐 jps-cli / nbskills / 桌面端三端契约(见 JPS 中心化登录 OIDC 接入文档 §5.3): 凭证落 ~/.jps_auth_info(测试服 ~/.jps_cli/test_auth_info),由 JPS_CLI_TEST 切换。 host 从 config 推导,回退到固定正式服地址。

Constant Summary collapse

TEST_ENV_VAR =
'JPS_CLI_TEST'.freeze
TEST_TRUE_VALUES =
%w[1 true yes on].freeze
DEFAULT_API_BASE =

固定正式服地址(config 未提供时回退用)

'https://jps-api.devtestapp.com'.freeze
DEFAULT_WEB_ORIGIN =
'https://jps-new.devtestapp.com'.freeze

Class Method Summary collapse

Class Method Details

.auth_fileObject

当前生效的凭证文件路径(与 jps-cli 逐字一致,属跨端硬契约,不走 config 覆盖)



25
26
27
28
29
30
31
32
# File 'lib/jpsclient/auth/endpoints.rb', line 25

def auth_file
  home = File.expand_path('~')
  if test_env?
    File.join(home, '.jps_cli', 'test_auth_info')
  else
    File.join(home, '.jps_auth_info')
  end
end

.origin_of(url, fallback = nil) ⇒ Object

取 URL 的 origin(scheme://host);空/非法时返回 fallback



35
36
37
38
39
40
41
42
43
44
# File 'lib/jpsclient/auth/endpoints.rb', line 35

def origin_of(url, fallback = nil)
  return fallback if url.nil? || url.to_s.empty?
  u = URI.parse(url.to_s)
  return fallback unless u.scheme && u.host
  origin = "#{u.scheme}://#{u.host}"
  origin += ":#{u.port}" if u.port && ![80, 443].include?(u.port)
  origin
rescue URI::InvalidURIError
  fallback
end

.test_env?Boolean

JPS_CLI_TEST 为真值(1/true/yes/on,大小写不敏感)→ 走测试服

Returns:

  • (Boolean)


20
21
22
# File 'lib/jpsclient/auth/endpoints.rb', line 20

def test_env?
  TEST_TRUE_VALUES.include?(ENV[TEST_ENV_VAR].to_s.strip.downcase)
end