Skip to content

Commit

Permalink
Reduce OAuth2Authenticatable parameters to loginHint
Browse files Browse the repository at this point in the history
Updated Tests
  • Loading branch information
cocojoe committed Mar 20, 2017
1 parent d054704 commit e95f84e
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 14 deletions.
10 changes: 5 additions & 5 deletions Lock/Auth0OAuth2Interactor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -30,20 +30,20 @@ struct Auth0OAuth2Interactor: OAuth2Authenticatable {
let options: Options
let nativeHandlers: [String: AuthProvider]

func login(_ connection: String, parameters: [String: String] = [:], callback: @escaping (OAuth2AuthenticatableError?) -> Void) {
func login(_ connection: String, loginHint: String?, callback: @escaping (OAuth2AuthenticatableError?) -> Void) {
if let nativeHandler = self.nativeHandlers[connection] {
self.nativeAuth(withConnection: connection, nativeAuth: nativeHandler, callback: callback)
} else {
self.webAuth(withConnection: connection, parameters: parameters, callback: callback)
self.webAuth(withConnection: connection, loginHint: loginHint, callback: callback)
}
}

private func webAuth(withConnection connection: String, parameters authParameters: [String: String], callback: @escaping (OAuth2AuthenticatableError?) -> Void) {
private func webAuth(withConnection connection: String, loginHint: String?, callback: @escaping (OAuth2AuthenticatableError?) -> Void) {

var parameters: [String: String] = [:]
authParameters.forEach { parameters[$0] = "\($1)" }

self.options.parameters.forEach { parameters[$0] = "\($1)" }
parameters["login_hint"] = loginHint

var auth = authentication
.webAuth(withConnection: connection)
.scope(self.options.scope)
Expand Down
4 changes: 1 addition & 3 deletions Lock/EnterpriseDomainInteractor.swift
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,7 @@ struct EnterpriseDomainInteractor: HRDAuthenticatable {

func login(_ callback: @escaping (OAuth2AuthenticatableError?) -> Void) {
guard let connection = self.connection else { return callback(.noConnectionAvailable) }
var parameters: [String: String] = [:]
parameters["login_hint"] = self.email
authenticator.login(connection.name, parameters: parameters, callback: callback)
authenticator.login(connection.name, loginHint: self.email, callback: callback)
}

}
6 changes: 3 additions & 3 deletions Lock/OAuth2Authenticatable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@
import Foundation

protocol OAuth2Authenticatable {
func login(_ connection: String, parameters: [String: String], callback: @escaping (OAuth2AuthenticatableError?) -> Void)
func login(_ connection: String, loginHint: String?, callback: @escaping (OAuth2AuthenticatableError?) -> Void)
}

extension OAuth2Authenticatable {
func login(_ connection: String, parameters: [String: String] = [:], callback: @escaping (OAuth2AuthenticatableError?) -> Void) {
self.login(connection, parameters: parameters, callback: callback)
func login(_ connection: String, loginHint: String? = nil, callback: @escaping (OAuth2AuthenticatableError?) -> Void) {
self.login(connection, loginHint: loginHint, callback: callback)
}
}

Expand Down
2 changes: 1 addition & 1 deletion LockTests/Interactors/EnterpriseDomainInteractorSpec.swift
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ class EnterpriseDomainInteractorSpec: QuickSpec {
expect(error).toEventually(beNil())
}

it("should add login_hint to login") {
it("should add login_hint to parameters") {
authentication.webAuthResult = { return .success(result: mockCredentials()) }
try! enterprise.updateEmail("[email protected]")
enterprise.login() { error = $0 }
Expand Down
4 changes: 2 additions & 2 deletions LockTests/Utils/Mocks.swift
Original file line number Diff line number Diff line change
Expand Up @@ -361,9 +361,9 @@ class MockOAuth2: OAuth2Authenticatable {
var onLogin: () -> OAuth2AuthenticatableError? = { _ in return nil }
var parameters: [String: String] = [:]

func login(_ connection: String, parameters: [String: String] = [:], callback: @escaping (OAuth2AuthenticatableError?) -> ()) {
func login(_ connection: String, loginHint: String? = nil, callback: @escaping (OAuth2AuthenticatableError?) -> ()) {
self.connection = connection
self.parameters = parameters
self.parameters["login_hint"] = loginHint
callback(self.onLogin())
}
}
Expand Down

0 comments on commit e95f84e

Please sign in to comment.