帮酷LOGO
  • 显示原文与译文双语对照的内容
Angular 2 oauth library for use with Apache Cordova projects

  • 源代码名称:ngx-cordova-oauth
  • 源代码网址:http://www.github.com/nraboy/ngx-cordova-oauth
  • ngx-cordova-oauth源代码文档
  • ngx-cordova-oauth源代码下载
  • Git URL:
    git://www.github.com/nraboy/ngx-cordova-oauth.git
  • Git Clone代码到本地:
    git clone http://www.github.com/nraboy/ngx-cordova-oauth
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/nraboy/ngx-cordova-oauth
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • Build StatusPayPalBitcoin

    Angular 2 Cordova Oauth

    ng2-cordova-oauth是一个可以轻松集成在 angular2/ionic2或者其他任何网络或者Cordova应用程序中的。 这个库的目的是快速轻松地获得来自各种 Web服务的访问令牌,以使用它们的api 。

    捐赠

    如果你发现这个项目有用,请考虑将比特币捐赠到以下地址:

    1M8SKTepmgA2KAUSZc7LpXN1owaky1DjNM

    要求

    对于Cordova应用程序:

    对于Web应用程序:

    • web service,systemjs或者amd加载程序

    将ng2-cordova-oauth安装到你的项目中

    安装

    从你的Apache Cordova项目的root 中执行以下命令:

    npm install ng2-cordova-oauth --save

    这将安装ng2-cordova-oauth及其依赖项。

    注入:

    库中有 2种类型的实体: 平台( 例如,Cordova,浏览器) 和提供程序( 。例如,Facebook,LinkedIn,等等 ) 。 每个提供程序都有自己的类。 你需要将平台类注入到希望使用它们的每个类中。 例如如果你希望在特定类别中使用 facebookconnect,那么它看起来就像:

    import {Facebook, Google} from'ng2-cordova-oauth/core';import {OauthBrowser} from'ng2-cordova-oauth/platform/browser'// orimport {OauthCordova} from'ng2-cordova-oauth/platform/cordova'

    或者你可以使用 Angular2 Injector来为所有组件提供平台特定的服务:

    import {bootstrap} from'@angular/platform-browser-dynamic'import {App} from'./app.component'import {OauthCordova} from'ng2-cordova-oauth/platform/cordova'import {Oauth} from'ng2-cordova-oauth/oauth'bootstrap(App, [
     { provide: Oauth, useClass: OauthCordova }
    ])// and later in component@Component({
     selector:'my-component'})classMyComponent {
     constructor(oauth:Oauth) {
     this.oauth= oauth
     }
    }

    在你的项目中使用 ng2-cordova-oauth

    每个web服务API在这个库中独立作用。 但是,在配置每个web服务时,必须保持一致。

    目前它支持多个oAuth提供者: Facebook,Instagram,LinkedIn,谷歌,Meetup,Imgur 。 创建oAuth提供程序的示例:

    constprovider=newFacebook({
     clientId: string,
     appScope?: string[],
     redirectUri?: string,
     responseType?: string,
     authType?: string
    });

    每个API调用都返回一个 promise 。 成功回调将提供一个响应对象,错误回调将返回一个 Error 对象。 并非所有提供程序都使用隐式授予。 任何使用显式授权的提供者都将返回 code 而不是 access_token 。 必须将 code 进一步交换服务器端以便进行 access_token 。 这是为了你的用户的安全。

    constoauth=newOauthCordova();constprovider=newFacebook({
     clientId:"CLIENT_ID_HERE",
     appScope: ["email"]
    })oauth.logInVia(provider).then((success) => {
     console.log(JSON.stringify(success));
    }, (error) => {
     console.log(JSON.stringify(error));
    });

    在Apache中,必须使用插件插件来访问外部服务器。

    如果你使用 OauthPlatform 服务,但不会忘记替换为cordova项目( 例如 ),则这里库可以使用web浏览器,离子服务器或者离子视图。

    关于Google的重要说明

    谷歌,如 2016年10月,已经开始阻止来自于混合应用程序的web视图的请求。 因此,对谷歌的支持已经从这个库中删除。

    更多信息可以在以下位置找到:

    https://developers.googleblog.com/2016/08/modernizing-oauth-interactions-in-native-apps.html

    一个工作示例

    import {Component} from'@angular/core';import {NavController, Platform} from'ionic-angular';import {Facebook, Google, LinkedIn} from"ng2-cordova-oauth/core";import {OauthCordova} from'ng2-cordova-oauth/platform/cordova';
    @Component({
     templateUrl:'build/pages/home/home.html'})exportclassHomePage {
     private oauth: OauthCordova =newOauthCordova();
     private facebookProvider: Facebook =newFacebook({
     clientId:"CLIENT_ID_HERE",
     appScope: ["email"]
     })
     constructor(privatenavCtrl:NavController, privateplatform:Platform) { }
     publicfacebook() {
     this.platform.ready().then(() => {
     this.oauth.logInVia(this.facebookProvider).then(success=> {
     console.log("RESULT: "+JSON.stringify(success));
     }, error=> {
     console.log("ERROR: ", error);
     });
     });
     }
    }

    或者,你可以在构造函数中插入 OauthCordova,如上面的示例所示。

    自定义浏览器窗口选项

    window.open的浏览器和InAppBrowser的支持一串可以以作为第二个参数作为 logInVia 传递的选项。 例如如果不知道要清除会话缓存,或者将工具栏放置在iOS的顶部:

    newOauthCordova().logInVia(facebookProvider, {
     clearsessioncache:'no',
     toolbarposition:'top'})

    可以找到所有可用选项的列表:

    版本历史

    快来了。

    贡献规则

    所有捐赠都必须通过 development 分支进行。 这使得项目在版本控制和代码控制方面保持了更高的可维护性。

    有问题或者发现 Bug ( 恭维工作也 work )?

    这个项目是由 Raboy 维护的。

    在 Twitter - @nraboy 上推 Tweet

    资源

    离子 2 - http://www.ionicframework.com

    Angular 2 https://www.angular.io

    Apache Cordova - http://cordova.apache.org

    raboy博客的Nic代码- https://www.thepolyglotdeveloper.com




    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语