修复: doorkeeper 无法生成jwt token
This commit is contained in:
parent
8f45bcf959
commit
21ccedab9c
|
@ -106,6 +106,10 @@ GEM
|
||||||
activerecord (>= 3.1.0, < 7)
|
activerecord (>= 3.1.0, < 7)
|
||||||
diff-lcs (1.3)
|
diff-lcs (1.3)
|
||||||
diffy (3.3.0)
|
diffy (3.3.0)
|
||||||
|
doorkeeper (5.5.4)
|
||||||
|
railties (>= 5)
|
||||||
|
doorkeeper-jwt (0.4.1)
|
||||||
|
jwt (>= 2.1)
|
||||||
e2mmap (0.1.0)
|
e2mmap (0.1.0)
|
||||||
elasticsearch (7.5.0)
|
elasticsearch (7.5.0)
|
||||||
elasticsearch-api (= 7.5.0)
|
elasticsearch-api (= 7.5.0)
|
||||||
|
@ -450,6 +454,8 @@ DEPENDENCIES
|
||||||
chromedriver-helper
|
chromedriver-helper
|
||||||
deep_cloneable (~> 3.0.0)
|
deep_cloneable (~> 3.0.0)
|
||||||
diffy
|
diffy
|
||||||
|
doorkeeper
|
||||||
|
doorkeeper-jwt
|
||||||
enumerize
|
enumerize
|
||||||
faraday (~> 0.15.4)
|
faraday (~> 0.15.4)
|
||||||
font-awesome-sass (= 4.7.0)
|
font-awesome-sass (= 4.7.0)
|
||||||
|
@ -458,6 +464,7 @@ DEPENDENCIES
|
||||||
harmonious_dictionary (~> 0.0.1)
|
harmonious_dictionary (~> 0.0.1)
|
||||||
jbuilder (~> 2.5)
|
jbuilder (~> 2.5)
|
||||||
jquery-rails
|
jquery-rails
|
||||||
|
jwt
|
||||||
kaminari (~> 1.1, >= 1.1.1)
|
kaminari (~> 1.1, >= 1.1.1)
|
||||||
letter_avatar
|
letter_avatar
|
||||||
listen (>= 3.0.5, < 3.2)
|
listen (>= 3.0.5, < 3.2)
|
||||||
|
|
|
@ -7,7 +7,7 @@ Doorkeeper.configure do
|
||||||
|
|
||||||
# This block will be called to check whether the resource owner is authenticated or not.
|
# This block will be called to check whether the resource owner is authenticated or not.
|
||||||
resource_owner_authenticator do
|
resource_owner_authenticator do
|
||||||
raise "Please configure doorkeeper resource_owner_authenticator block located in #{__FILE__}"
|
# raise "Please configure doorkeeper resource_owner_authenticator block located in #{__FILE__}"
|
||||||
# Put your resource owner authentication logic here.
|
# Put your resource owner authentication logic here.
|
||||||
# Example implementation:
|
# Example implementation:
|
||||||
User.find_by(id: session[:www_user_id]) || redirect_to(new_user_session_url)
|
User.find_by(id: session[:www_user_id]) || redirect_to(new_user_session_url)
|
||||||
|
@ -228,7 +228,7 @@ Doorkeeper.configure do
|
||||||
# `grant_type` - the grant type of the request (see Doorkeeper::OAuth)
|
# `grant_type` - the grant type of the request (see Doorkeeper::OAuth)
|
||||||
# `scopes` - the requested scopes (see Doorkeeper::OAuth::Scopes)
|
# `scopes` - the requested scopes (see Doorkeeper::OAuth::Scopes)
|
||||||
#
|
#
|
||||||
# use_refresh_token
|
use_refresh_token
|
||||||
|
|
||||||
# Provide support for an owner to be assigned to each registered application (disabled by default)
|
# Provide support for an owner to be assigned to each registered application (disabled by default)
|
||||||
# Optional parameter confirmation: true (default: false) if you want to enforce ownership of
|
# Optional parameter confirmation: true (default: false) if you want to enforce ownership of
|
||||||
|
@ -304,7 +304,7 @@ Doorkeeper.configure do
|
||||||
#
|
#
|
||||||
# You can completely disable this feature with:
|
# You can completely disable this feature with:
|
||||||
#
|
#
|
||||||
# allow_blank_redirect_uri false
|
allow_blank_redirect_uri true
|
||||||
#
|
#
|
||||||
# Or you can define your custom check:
|
# Or you can define your custom check:
|
||||||
#
|
#
|
||||||
|
@ -444,6 +444,9 @@ Doorkeeper.configure do
|
||||||
# skip_authorization do |resource_owner, client|
|
# skip_authorization do |resource_owner, client|
|
||||||
# client.superapp? or resource_owner.admin?
|
# client.superapp? or resource_owner.admin?
|
||||||
# end
|
# end
|
||||||
|
skip_authorization do
|
||||||
|
true
|
||||||
|
end
|
||||||
|
|
||||||
# Configure custom constraints for the Token Introspection request.
|
# Configure custom constraints for the Token Introspection request.
|
||||||
# By default this configuration option allows to introspect a token by another
|
# By default this configuration option allows to introspect a token by another
|
||||||
|
@ -540,7 +543,7 @@ Doorkeeper::JWT.configure do
|
||||||
|
|
||||||
# Set the encryption secret. This would be shared with any other applications
|
# Set the encryption secret. This would be shared with any other applications
|
||||||
# that should be able to read the payload of the token. Defaults to "secret".
|
# that should be able to read the payload of the token. Defaults to "secret".
|
||||||
secret_key ENV['JWT_SECRET']
|
secret_key ENV['JWT_SECRET'] || "forgeplus"
|
||||||
|
|
||||||
# If you want to use RS* encoding specify the path to the RSA key to use for
|
# If you want to use RS* encoding specify the path to the RSA key to use for
|
||||||
# signing. If you specify a `secret_key_path` it will be used instead of
|
# signing. If you specify a `secret_key_path` it will be used instead of
|
||||||
|
|
|
@ -2,125 +2,134 @@ zh-CN:
|
||||||
activerecord:
|
activerecord:
|
||||||
attributes:
|
attributes:
|
||||||
doorkeeper/application:
|
doorkeeper/application:
|
||||||
name: '名称'
|
name: 应用名称
|
||||||
redirect_uri: '登录回调地址'
|
redirect_uri: 重定向 URI
|
||||||
scopes: '权限范围'
|
|
||||||
errors:
|
errors:
|
||||||
models:
|
models:
|
||||||
doorkeeper/application:
|
doorkeeper/application:
|
||||||
attributes:
|
attributes:
|
||||||
redirect_uri:
|
redirect_uri:
|
||||||
fragment_present: '不能包含片段(#)'
|
fragment_present: 不能包含网址片段(#)
|
||||||
invalid_uri: '必须是有效的 URL 格式'
|
invalid_uri: 必须是有效的 URI 格式
|
||||||
relative_uri: '必须是绝对的 URL 地址'
|
unspecified_scheme: must specify a scheme.
|
||||||
secured_uri: '必须是 HTTPS/SSL 的 URL 地址'
|
relative_uri: 必须是绝对的 URI 地址
|
||||||
|
secured_uri: 必须是 HTTPS/SSL 的 URI 地址
|
||||||
|
forbidden_uri: 被服务器禁止。
|
||||||
|
scopes:
|
||||||
|
not_match_configured: 不匹配服务器上的配置。
|
||||||
doorkeeper:
|
doorkeeper:
|
||||||
applications:
|
applications:
|
||||||
confirmations:
|
confirmations:
|
||||||
destroy: '确定要删除应用吗?'
|
destroy: 确定要删除应用吗?
|
||||||
buttons:
|
buttons:
|
||||||
edit: '编辑'
|
edit: 编辑
|
||||||
destroy: '删除'
|
destroy: 删除
|
||||||
submit: '提交'
|
submit: 提交
|
||||||
cancel: '取消'
|
cancel: 取消
|
||||||
authorize: '授权'
|
authorize: 授权
|
||||||
form:
|
form:
|
||||||
error: '抱歉! 提交信息的时候遇到了下面的错误'
|
error: 抱歉! 提交信息的时候遇到了下面的错误
|
||||||
help:
|
help:
|
||||||
redirect_uri: '每行只能有一个 URL'
|
confidential: 应用程序的client secret可以保密,但原生移动应用和单页应用将无法保护client secret。
|
||||||
native_redirect_uri: '使用 %{native_redirect_uri} 作为本地测试'
|
redirect_uri: 每行只能有一个 URI
|
||||||
scopes: '用空格隔开权限范围,留空则使用默认设置'
|
blank_redirect_uri: Leave it blank if you configured your provider to use Client Credentials, Resource Owner Password Credentials or any other grant type that doesn't require redirect URI.
|
||||||
|
scopes: 用空格分割权限范围,留空则使用默认设置
|
||||||
edit:
|
edit:
|
||||||
title: '修改应用'
|
title: 修改应用
|
||||||
index:
|
index:
|
||||||
title: '你的应用'
|
title: 你的应用
|
||||||
new: '创建新应用'
|
new: 创建新应用
|
||||||
name: '名称'
|
name: 名称
|
||||||
callback_url: '登录回调地址'
|
callback_url: 回调 URL
|
||||||
|
confidential: Confidential?
|
||||||
|
actions: 动作
|
||||||
|
confidentiality:
|
||||||
|
'yes': 是
|
||||||
|
'no': 沒有
|
||||||
new:
|
new:
|
||||||
title: '创建新应用'
|
title: 创建新应用
|
||||||
show:
|
show:
|
||||||
title: '应用:%{name}'
|
title: 应用:%{name}
|
||||||
application_id: '应用 ID'
|
application_id: 应用 UID
|
||||||
secret: '私钥'
|
secret: 应用密钥
|
||||||
scopes: '权限范围'
|
secret_hashed: Secret hashed
|
||||||
callback_urls: '登录回调地址'
|
scopes: 权限范围
|
||||||
confidential: 'Confidential'
|
confidential: Confidential
|
||||||
actions: '操作'
|
callback_urls: 回调 URL
|
||||||
|
actions: 操作
|
||||||
|
not_defined: Not defined
|
||||||
authorizations:
|
authorizations:
|
||||||
buttons:
|
buttons:
|
||||||
authorize: '授权'
|
authorize: 同意授权
|
||||||
deny: '拒绝'
|
deny: 拒绝授权
|
||||||
error:
|
error:
|
||||||
title: '存在错误'
|
title: 发生错误
|
||||||
new:
|
new:
|
||||||
title: '需要你授权'
|
title: 需要授权
|
||||||
prompt: '授权 %{client_name} 使用你的帐号?'
|
prompt: 授权 %{client_name} 使用你的帐户?
|
||||||
able_to: '此应用将会'
|
able_to: 此应用将能够
|
||||||
show:
|
show:
|
||||||
title: '授权码'
|
title: 授权代码
|
||||||
|
form_post:
|
||||||
|
title: Submit this form
|
||||||
authorized_applications:
|
authorized_applications:
|
||||||
confirmations:
|
confirmations:
|
||||||
revoke: '确定要注销此应用的认证信息吗?'
|
revoke: 确定要撤销对此应用的授权吗?
|
||||||
buttons:
|
buttons:
|
||||||
revoke: '注销'
|
revoke: 撤销授权
|
||||||
index:
|
index:
|
||||||
title: '你授权的应用列表'
|
title: 已授权的应用
|
||||||
application: '应用'
|
application: 应用
|
||||||
created_at: '授权时间'
|
created_at: 授权时间
|
||||||
date_format: '%Y-%m-%d %H:%M:%S'
|
date_format: "%Y-%m-%d %H:%M:%S"
|
||||||
|
pre_authorization:
|
||||||
|
status: 预授权
|
||||||
errors:
|
errors:
|
||||||
messages:
|
messages:
|
||||||
# Common error messages
|
invalid_request:
|
||||||
invalid_request: '这个请求缺少必要的参数,或者参数值、格式不正确'
|
unknown: 请求缺少必要的参数,或者参数值、格式不正确。
|
||||||
invalid_redirect_uri: '无效的登录回调地址'
|
missing_param: 'Missing required parameter: %{value}.'
|
||||||
unauthorized_client: '未授权的应用,请求无法执行'
|
request_not_authorized: Request need to be authorized. Required parameter for authorizing request is missing or invalid.
|
||||||
access_denied: '用户或服务器拒绝了请求'
|
invalid_redirect_uri: 无效的登录回调地址。
|
||||||
invalid_scope: '请求范围无效、未知或格式不正确'
|
unauthorized_client: 未授权的应用,请求无法执行。
|
||||||
server_error: '服务器异常,无法处理请求'
|
access_denied: 资源所有者或服务器拒绝了请求。
|
||||||
temporarily_unavailable: '服务器维护中或负载过高,暂时无法处理请求'
|
invalid_scope: 请求的权限范围无效、未知或格式不正确。
|
||||||
|
invalid_code_challenge_method: The code challenge method must be plain or S256.
|
||||||
#configuration error messages
|
server_error: 服务器异常,无法处理请求。
|
||||||
credential_flow_not_configured: 'Resource Owner Password Credentials flow failed,原因是 Doorkeeper.configure.resource_owner_from_credentials 尚未设置。'
|
temporarily_unavailable: 服务器维护中或负载过高,暂时无法处理请求。
|
||||||
resource_owner_authenticator_not_configured: 'Resource Owner find failed,原因是 Doorkeeper.configure.resource_owner_authenticator 尚未设置。'
|
credential_flow_not_configured: 由于 Doorkeeper.configure.resource_owner_from_credentials 尚未配置,应用验证授权流程失败。
|
||||||
|
resource_owner_authenticator_not_configured: 由于 Doorkeeper.configure.resource_owner_authenticator 尚未配置,查找资源所有者失败。
|
||||||
# Access grant errors
|
admin_authenticator_not_configured: 由于 Doorkeeper.configure.admin_authenticator 尚未配置,禁止访问管理员面板。
|
||||||
unsupported_response_type: '服务器不支持这种响应类型'
|
unsupported_response_type: 服务器不支持这种响应类型。
|
||||||
|
unsupported_response_mode: The authorization server does not support this response mode.
|
||||||
# Access token errors
|
invalid_client: 由于应用信息未知、未提交认证信息或使用了不支持的认证方式,认证失败。
|
||||||
invalid_client: '由于未知、不支持或没有客户端,认证失败'
|
invalid_grant: 授权方式无效、过期或已被撤销、与授权请求中的回调地址不一致,或使用了其他应用的回调地址。
|
||||||
invalid_grant: '授权方式无效,或者登录回调地址无效、过期或已被撤销'
|
unsupported_grant_type: 服务器不支持此类型的授权方式。
|
||||||
unsupported_grant_type: '服务器不支持此类型的授权方式'
|
|
||||||
|
|
||||||
# Password Access token errors
|
|
||||||
invalid_resource_owner: '资源所有者认证无效或没有所有者'
|
|
||||||
|
|
||||||
invalid_token:
|
invalid_token:
|
||||||
revoked: "访问令牌已被吊销"
|
revoked: 访问令牌已被吊销
|
||||||
expired: "访问令牌已过期"
|
expired: 访问令牌已过期
|
||||||
unknown: "访问令牌无效"
|
unknown: 访问令牌无效
|
||||||
|
revoke:
|
||||||
|
unauthorized: You are not authorized to revoke this token
|
||||||
|
forbidden_token:
|
||||||
|
missing_scope: Access to this resource requires scope "%{oauth_scopes}".
|
||||||
flash:
|
flash:
|
||||||
applications:
|
applications:
|
||||||
create:
|
create:
|
||||||
notice: '应用创建成功'
|
notice: 应用创建成功。
|
||||||
destroy:
|
destroy:
|
||||||
notice: '应用删除成功'
|
notice: 应用删除成功。
|
||||||
update:
|
update:
|
||||||
notice: '应用修改成功'
|
notice: 应用修改成功。
|
||||||
authorized_applications:
|
authorized_applications:
|
||||||
destroy:
|
destroy:
|
||||||
notice: '已成功注销了应用的认证信息'
|
notice: 已成功撤销对此应用的授权。
|
||||||
|
|
||||||
layouts:
|
layouts:
|
||||||
admin:
|
admin:
|
||||||
|
title: Doorkeeper
|
||||||
nav:
|
nav:
|
||||||
oauth2_provider: 'OAuth2 提供商'
|
oauth2_provider: OAuth2 提供商
|
||||||
applications: '应用'
|
applications: 应用
|
||||||
home: '首页'
|
home: 首页
|
||||||
application:
|
application:
|
||||||
title: 'OAuth 认证'
|
title: 需要 OAuth 认证
|
|
@ -0,0 +1,5 @@
|
||||||
|
class ChangeOauthAccessTokensTokenColumnLength < ActiveRecord::Migration[5.2]
|
||||||
|
def change
|
||||||
|
change_column :oauth_access_tokens, :token, :string, limit: 500
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue