 public struct AGErrorCodes {
     public static let general = 0
     public static let unknown = 1
+    public static let wrongStateParameter = 1
     public static let userCanceled = 100
 }
 

        self.state = .authorizationStatePendingExternalApproval

        // calculate final url
        var params = "?scope=\(config.scope)&redirect_uri=\(config.redirectURL.urlEncode())&client_id=\(config.clientId)&response_type=code"

        if let audienceId = config.audienceId {
            params = "\(params)&audience=\(audienceId)"

    open var serverCode: String?

    open var idToken: String? { return oauth2Session.idToken }

    private let requestIdentifier: String = ProcessInfo.processInfo.globallyUniqueString

    /*
     Delegate UI events to module user
     */
