All Projects → googleapis → Google Auth Library Swift

googleapis / Google Auth Library Swift

Licence: apache-2.0
Auth client library for Swift command-line tools and cloud services. Supports OAuth1, OAuth2, and Google Application Default Credentials.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Google Auth Library Swift

Lwan
Experimental, scalable, high performance HTTP server
Stars: ✭ 5,520 (+5157.14%)
Mutual labels:  experimental
Midiflip
🎹 MIDI music mayhem - flip, transpose, and arbitrarily remap pitches in MIDI files
Stars: ✭ 33 (-68.57%)
Mutual labels:  experimental
Made With Love
🚀 An experimental project which demonstrates an Angular Package which contains Angular Elements and Schematics
Stars: ✭ 67 (-36.19%)
Mutual labels:  experimental
Reality
Comprehensive data proxy to knowledge about real world
Stars: ✭ 795 (+657.14%)
Mutual labels:  experimental
Drv3 Tools
(Not actively maintained, use DRV3-Sharp) Tools for extracting and re-injecting files for Danganronpa V3 for PC.
Stars: ✭ 13 (-87.62%)
Mutual labels:  experimental
Specflow.netcore
A (hopefully) temporary solution to get SpecFlow and .NET Core to play nice
Stars: ✭ 43 (-59.05%)
Mutual labels:  experimental
Conception
Conception was an experimental project, looking for ways to make software development more efficient.
Stars: ✭ 534 (+408.57%)
Mutual labels:  experimental
Essential Youtube
An experimental UI for YouTube.
Stars: ✭ 99 (-5.71%)
Mutual labels:  experimental
Falcon
Enables Xkey / Hash-Two / Surrogate Key caching with Craft 2.x. Very experimental.
Stars: ✭ 14 (-86.67%)
Mutual labels:  experimental
Quibbler
An experimental website powered by Socket.IO where anonymous chat messages are beautifully visualized in real time
Stars: ✭ 57 (-45.71%)
Mutual labels:  experimental
Forex
Fortran User Defined Exceptions Handler
Stars: ✭ 17 (-83.81%)
Mutual labels:  experimental
Zircleui
🚀 zircle-ui is a frontend library to develop zoomable user interfaces.
Stars: ✭ 870 (+728.57%)
Mutual labels:  experimental
Halocoin
Experimental cryptocurrency (blockchain) written in python.
Stars: ✭ 44 (-58.1%)
Mutual labels:  experimental
Snek
See https://github.com/inconvergent/weir instead
Stars: ✭ 696 (+562.86%)
Mutual labels:  experimental
Godot Scraps
Experimental projects for learning the Godot engine
Stars: ✭ 76 (-27.62%)
Mutual labels:  experimental
Jaspy
a Python VM written entirely from scratch in JavaScript with some unique features
Stars: ✭ 577 (+449.52%)
Mutual labels:  experimental
Purefun
Functional Programming library for Java
Stars: ✭ 37 (-64.76%)
Mutual labels:  experimental
Go Tls
A bit safer approach to implement Thread Local Storage (TLS) for Go 1.7+.
Stars: ✭ 104 (-0.95%)
Mutual labels:  experimental
Coax
A (barely working) native Wire client for Unix
Stars: ✭ 77 (-26.67%)
Mutual labels:  experimental
Zipperposition
An automatic theorem prover in OCaml for typed higher-order logic with equality and datatypes, based on superposition+rewriting; and Logtk, a supporting library for manipulating terms, formulas, clauses, etc.
Stars: ✭ 46 (-56.19%)
Mutual labels:  experimental

Swift Actions Status

Auth Library for Swift

This project contains Swift packages that can be used to write command-line tools and cloud services that use OAuth to authenticate and authorize access to remote services.

Currently these packages support OAuth1 and OAuth2. They are designed to work on OS X systems and on Linux systems that are running in the Google Cloud.

  • On OS X systems, OAuth tokens can be obtained using the locally-installed browser and a local web server that is automatically run in the command-line client.

  • On Linux systems, OAuth tokens can be obtained automatically from the Google Cloud Metadata Service.

  • On both Linux and OS X systems, OAuth tokens can be obtained automatically for Google Cloud Service Accounts.

Usage and Examples

Sources/Examples contains examples that illustrate OAuth1 and OAuth2 signin for various services. Each requires valid application credentials to run. See the various service providers for details.

The BrowserTokenProvider classes use a local web server to implement "three-legged OAuth" signin in which users grant permission in a browser that a provider's server redirects to the client server with a code. These providers look for OAuth configuration information in "credentials" YAML files that are expected to be in $HOME/.credentials. Sample credentials files are in credentials and include client IDs, client secrets, and OAuth service URLs. When OAuth services require registered callback URLs, these should be set to http://localhost:8080/SERVICE/callback where SERVICE is specified in the corresponding credentials YAML file. The temporary web server runs locally on port 8080.

Credits

  • The local web server is built using swift-nio/http.
  • HMAC and SHA1 hashing is performed using CryptoSwift.
  • RSA signing of service account JWT tokens uses BigInt.

Disclaimer

This is work in progress toward great server-side Swift software. Please take care when using this in production projects: always refer to a tagged version and be aware that interfaces may change in future releases.

Contributing

We'd love to collaborate on this. See CONTRIBUTING.md for details.

Copyright

Copyright 2019, Google LLC.

License

Released under the Apache 2.0 license.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].