当我们的项目运行在微信端时,用到oAuth第三方认证。问题来了,在ng4中微信认证应该放在哪里呢?

开始项目的时候,我将oAuth认证放在了每个页面模版中,发现返回历史页的时候,需要返回两次。

这个问题应该是认证的时候跳转页面导致的,所以,我们要考虑将oAuth放到合适的位置去。

下面具体的来说一说oAuth在ng4的步骤。

一、引入oauth.js文件

将oauth.js文件放在“assets”文件夹下,然后在index.html里面引入

<script src="assets/js/oauth.js"></script>

二、声明变量oAuth

这一步很关键,因为引入的js文件中的对象oAuth,并不能被ng识别,所以我们需要先声明oAuth。

在typings.d.ts中全局申明oAuth变量

declare var oAuth: any;

三、在main.ts实现oAuth微信认证

为什么在main.ts中实现认证?main.ts负责引导整个angular应用的起点。具体请移步我写的《angular4.0项目main.ts详解》中去学习吧。

实现微信认证请看下面的代码,核心是:在微信认证完成后的回调中,执行 platformBrowserDynamic().bootstrapModule(AppModule);

import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment'; if (environment.production) {
enableProdMode();
} //微信oauth认证
oAuth.cfg(Config.uid, Config.isDebug, Config.scope);
oAuth.checkToken((apiopenid, apitoken) => {
Config.apiopenid = apiopenid;
Config.apitoken = apitoken;
//认证完成后,调用bootstrapModule方法来传入AppModule作为启动模块来启动应用。
platformBrowserDynamic().bootstrapModule(AppModule);
});

ok,就这样完成了,谢谢大婶指点。

angular4.0微信oAuth第三方认证的正确方式的更多相关文章

  1. vue2.0 微信oauth认证的正确调用位置

    运行在微信端的项目,很重要的环节是oauth认证:那在vue项目中,在何时何地调用oauth认证最合适呢? 经过观察,在项目启动过程中,会执行main.js文件:所以我将认证放在main.js中操作: ...

  2. asp.net 、C#实现微信企业号OAuth2认证

    以微信企业号作为入口的应用,几乎都会遇到需要应用系统中个人信息和微信用户关联问题.从而进行其他业务处理.目前所做项目采取在企业号通讯录添加自定义字段存入应用系统用户信息表中唯一标识UserGuid进行 ...

  3. 谈谈基于OAuth 2.0的第三方认证 [下篇]

    从安全的角度来讲,<中篇>介绍的Implicit类型的Authorization Grant存在这样的两个问题:其一,授权服务器没有对客户端应用进行认证,因为获取Access Token的 ...

  4. 谈谈基于OAuth 2.0的第三方认证 [中篇]

    虽然我们在<上篇>分别讨论了4种预定义的Authorization Grant类型以及它们各自的适用场景的获取Access Token的方式,我想很多之前没有接触过OAuth 2.0的读者 ...

  5. 谈谈基于OAuth 2.0的第三方认证 [上篇]

    对于目前大部分Web应用来说,用户认证基本上都由应用自身来完成.具体来说,Web应用利用自身存储的用户凭证(基本上是用户名/密码)与用户提供的凭证进行比较进而确认其真实身份.但是这种由Web应用全权负 ...

  6. angular4.0运行在微信端的坑坑洼洼

    最近的一个项目,我用ng4操刀,踩了超多的坑: 坑1:项目build后,刷新后404错误: 解决方案:<angular4.0项目build发布后,刷新页面报错404> 坑2:微信分享: 运 ...

  7. Angular4.0引入第三方框架,eg: bootstrap、jquery

    最近学习angular4.0,在练习是需要使用jquery和bootstrap.但是查阅了,大多数都是angular2的方法,或者是angular4.0的方法但是不准确.花了一些时间终于捣腾出来了,把 ...

  8. NET微信公众号开发-5.0微信支付(待测试)

    开发前准备. 1.0微信支付官方开发者文档 2.0官方demo下载 我们用c#所以选择.net版本 不过这个官方的demo根本跑步起来 3.0官方demo运行起来解决方案 4.0微信支付官方.net版 ...

  9. .NET微信公众号开发-5.0微信支付

    一.前言 在开始做这个功能之前,我们要做的第一件事情就是思考,如何做这个微信支付,从哪里开始,从哪里入手,官方的sdk说明什么的,有没有什么官方的demo,还有就是老板给我的一些资料齐全不,那些要申请 ...

随机推荐

  1. Python--Pycharm backup_ver1.py 控制台一直Backup FAILED

    1.windows不自带zip,需自行安装,http://gnuwin32.sourceforge.net/packages/zip.htm 2.安装后,要配置环境变量:PATH 3.简明Python ...

  2. iOS 断点上传文件

    项目开发中,有时候我们需要将本地的文件上传到服务器,简单的几张图片还好,但是针对iPhone里面的视频文件进行上传,为了用户体验,我们有必要实现断点上传.其实也不是真的断点,这里我们只是模仿断点机制. ...

  3. 【Struts2的执行流程,这个博主写的很详细】

    http://blog.csdn.net/wjw0130/article/details/46371847

  4. nginx HTTP/2.0 配置

    1.前言 最近无意中看到http2.0消息,发现自己的博客虽然配了https,但并没有配置http2.0,所以搞了个玩玩,本以为配个参数就搞定了,结果还是折腾了一个小时. 2.过程 nginx并没有默 ...

  5. 中小企业为什么要上HR系统

    人力资源不不过公司资源.也是一种社会资源. 越来越多的企业已将人作为一种重要的资源来看待,资金和技术则是其次.所以企业内部科学的全面的人力资源管理也因此处在了十分重要的位置上. 现在的人力资源是服务于 ...

  6. Unity打包android的apk与数据包.obb分离和apk签名

    那么,通过以上图片.我相信大多数人已经知道怎么创建了,apk签名比較简单,假设之前没有签名文件.那么选择图中的Create New Keystore然后在以下两个password框中输入passwor ...

  7. Java中File的使用

    File 代表文件或者目录的类 构造函数 File(File parent,String child)---代表了指定父目录下的指定的子文件或者子目录 File(String pathname)--- ...

  8. EJB:快速入门

    1.EJB概念 2.EJB体系结构 3.SessionBean 3.1 SessionBean 服务端组件 3.2 Remote 与 Local 模式 3.3 Client访问处理流程 3.3.1 R ...

  9. MyEclipse 2014 破解版下载:我有,需要的给我说一声,给你发过去

    1.破解版的,需要的在下面给我说一声,云盘给你发过去.

  10. 商城项目回顾整理(二)easyUi数据表格使用

    后台主页: 商品的数据表格展示 引入用户表数据表格展示 引入日志表数据表格展示 引入订单表数据表格展示 后台主页代码: <%@ page language="java" co ...