class Net::IMAP::SASL::OAuthBearerAuthenticator

用于 “OAUTHBEARERSASL 机制的身份验证器,在 RFC7628 中指定。 使用 OAuth 2.0 持有者令牌进行身份验证,如 RFC6750 中所述。通过 Net::IMAP#authenticate 使用。

RFC6750 要求使用传输层安全协议(TLS)来保护客户端和资源服务器之间的协议交互。必须使用 TLS 来保护 OAUTHBEARER 的持有者令牌。

属性

oauth2_token[R]

OAuth 2.0 持有者令牌。 请参阅 RFC-6750

secret[R]

OAuth 2.0 持有者令牌。 请参阅 RFC-6750

公共类方法

new(oauth2_token, **options) → authenticator 点击以切换源代码
new(authzid, oauth2_token, **options) → authenticator
new(oauth2_token:, **options) → authenticator

创建用于 “OAUTHBEARERSASL 机制的身份验证器。

Net::IMAP#authenticate 和其他客户端上的类似方法调用。

参数

所有其他关键字参数都传递给 super(请参阅 OAuthAuthenticator)。最常见的参数是:

  • 可选 authzid ― 作为或代表其执行操作的授权身份。

    可选 usernameauthzid 的别名。

    请注意,与某些其他身份验证器不同,username 设置的是授权身份,而不是身份验证身份。客户端的身份验证身份由 oauth2_token 建立。

  • 可选 host — 客户端连接的主机名。

  • 可选 port — 客户端连接的服务端口。

尽管此机制仅需要 oauth2_token,但值得注意的是,允许应用程序协议要求 authzid或其他参数,例如 host port以及特定的服务器实现

# File net-imap-0.5.4/lib/net/imap/sasl/oauthbearer_authenticator.rb, line 177
def initialize(arg1 = nil, arg2 = nil,
               oauth2_token: nil, secret: nil,
               **args, &blk)
  username, oauth2_token_arg = arg2.nil? ? [nil, arg1] : [arg1, arg2]
  super(username: username, **args, &blk)
  @oauth2_token = oauth2_token || secret || oauth2_token_arg or
    raise ArgumentError, "missing oauth2_token"
end

公共实例方法

authorization() 点击以切换源代码

HTTP Authorization 标头的值

# File net-imap-0.5.4/lib/net/imap/sasl/oauthbearer_authenticator.rb, line 193
def authorization; "Bearer #{oauth2_token}" end
initial_response? → true 点击以切换源代码

OAUTHBEARER 发送初始客户端响应。

# File net-imap-0.5.4/lib/net/imap/sasl/oauthbearer_authenticator.rb, line 190
def initial_response?; true end