Giter Club home page Giter Club logo

authorize-me's Introduction

AuthorizeMe

AuthorizeMe is a mobile library for iOS that designed to easy implementation of authorization with social networks. This repository holds the source code that contain a set of providers that implement the functionality needed to get credentials and information about user from various social services.

Features

  • No dependency: AuthorizeMe is a fully Swift framework without any dependency. Use the library without any additional Xcode project configurations after installation.
  • Authorization: There are two ways to authorize user. Use SystemProvider for authorize user with iOS social accounts data. Use WebProvider for authorize user with UIWebView in case when is not possible to use first way.
  • Custom provider: Implement own provider if AuthorizeMe does not following social network that needed. It is easy and free.

Getting Started

Installation

CocoaPods is a dependency manager for Cocoa projects. Install it with the following command:

$ gem install cocoapods

To integrate AuthorizeMe into Xcode project using CocoaPods, specify it in Podfile:

platform :ios, '10.0'

target 'Target Name' do
    use_frameworks!

    pod 'AuthorizeMe'
    # or 
    # pod 'AuthorizeMe/Facebook'
    # to integrate Facebook only

end

Then, run the following command:

$ pod install

First Look

Firstly, import AuthorizeMe framework into class in Xcode project.

import AuthorizeMe

Then, turn logging on for seen error messages of authorization process if needed. Do it in AppDelegate class is the best way.

DebugService.isNeedOutput = true

Finally, use Authorize manager that authorize user with SystemProvider if it possible, but in other case manager authorize user with WebProvider.

Authorize.me.on("Name of social network") { session, error in
    // Do something
}

To separate usage of various providers, use SystemProvider and WebProvider apart.

let provider = FacebookSystemProvider() 
// or 
// let provider = TwitterWebProvider()

provider.authorize { session, error in
    // Do something
}

Guides


AuthorizeMe library is licensed under the MIT license. See the LICENSE file for more info.


RubyGarage Logo

RubyGarage is a leading software development and consulting company in Eastern Europe. Our main expertise includes Ruby and Ruby on Rails, but we successfully employ other technologies to deliver the best results to our clients. Check out our portfolio for even more exciting works!

authorize-me's People

Contributors

antonoffevgeniy avatar radyslavkrechet avatar sparrow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

authorize-me's Issues

No maintanance?

This library seems to have stopped maintenance.

Are there any alternatives?

Demo uses CommonCrypto and that isn't in Podfile

authorize-me-master/Core/Common/Extensions/String+Hashing.swift:10:8: No such module 'CommonCrypto'

// String+Hashing.swift
// Authorizer
//
// Created by Radislav Crechet on 5/8/17.
// Copyright © 2017 RubyGarage. All rights reserved.
//

import Foundation
import CommonCrypto

..........

LinkedIn Login error.

Hey bro,

First of all thanks for the SDK. It's really useful. But there is an error when I want to login with LinkedIn. Console says "Problem with network"

`Authorize.me.on("LinkedIn") { session, error in
guard let session = session else {
print("Problem with (error!)")
return
}

  print("Authorized with LinkedIn")
  print("Token: \(session.token)")
  print("Username: \(session.user.name)")
}`

Plist is fine. App opens linkedIn login page when I login to LinkedIn it returns with "[AuthorizeMe] There is bad network response, Problem with network" error.

Any idea ? Thanks.

Cocopods integration seems broken, not fully implemented

After running the cocoPods install and opening my workspace, I see nothing but compile errors attempting to use authorize-me

var provider: Provider? ... Use of undeclared type 'Provider'

provider = TwitterSystemProvider() .. Use of unresolved identifier 'TwitterSystemProvider'

and on and on and on. I am sure this can be fixed by me with adding to build path or something, but plenty of cocoPod projects do not require that.

  1. Explain how to fix please
  2. Implement a permanent fix in your code please

CredStore - performQuery - Error copying matching creds

The following error occurs when running this sample code.. My plist exists and I believe it is correct.

@IBAction func webButtonPressed(_ sender: Any) {
provider = TwitterWebProvider()
authorizeMe()
}

CredStore - performQuery - Error copying matching creds. Error=-25300, query={
class = inet;
"m_Limit" = "m_LimitAll";
ptcl = htps;
"r_Attributes" = 1;
sdmn = "https://api.twitter.com";
srvr = "api.twitter.com";
sync = syna;
}
[AuthorizeMe] There is bad network response
Problem with network

TwitterSystemProvider .. deprecated?

I have implemented code and see this when clicking the button in my UI that would trigger the code

    @IBAction func systemButtonPressed(_ sender: Any) {
        provider = TwitterSystemProvider()
        authorizeMe()
    }

AuthorizeMe] The identifiers for system account types were deprecated
Problem with provider

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.