这是三周内容,实现用户登录和管理

回到master分支

切换到 han分支 更新一下 然后工作

开始工作写代码了

安装2个angular端的auth0的lib,也可不安装,后边有不安装的做法

不安装的方法是

我们知道我们所有的client端的代码或者js文件,都是通过咱们用ng bulid --watch 时刻生成的 public目录下index.html加载运行的

但是呢?我们是不能够直接修改index.html的他是angular-cli帮我们生成的(用ng build --watch命令)

那我们去哪里修改呢?

我们当然是oj-client/src/  下 index.html

2个都可以,区别就是一个下载到本地安装,另外一个是用在线的。都可以。我们用安装的

这样我们就有所有的依赖,利用这个lib(包)我们就可以用auth0

下一步就是实现login in 功能(和以前我们的写法一样 , 建立service)

angular-cli就帮我们生成2个文件

然后就从官网上 复制粘贴模板

必须声明才可以

如何让其他component使用这个service呢?

服务有了 就要用了 因为login那个按钮在navbar哪里 所以

我们去页面看看

然后我们试试运行一下

点一下sign in 试试

说明cookie记录了

发现是可以的。

官网jwt.io将token贴入会返回3部分信息

但是

有2个大坑,虽然说继承auth很简单,但是呢,因为api版本和用法的不同,会出现很多问题,解决方法就是版本对应。

比如,我们在用比较新的版本时(10.8),

我们发现等我们在具体页面登录的时候

登录后 跳转到了 首页 而不是登录时具体的页面

这是很不理想的!

问题二

另外一个坑是

当我们在具体页面刷新以后登录 会报错,callback地址改变不再是localhost:3000 而是变成 localhost:3000/problems/1

但是这个地址是我们没有添加到callback地址的,你会说,我们添加就好了,但是如果是localhost:3000/problems/2

你还要添加一次 3 你还要添加 这是我们不能接受的

其实是API版本问题

怎么修正呢?

你可以选择就的版本

修改client端下的index.html

如果你是用CDN那个方式的话就改具体的版本号

新API为什么这样呢?

留个坑 看文档吧

还是改回老版本吧 且用cdn的方式

//version : use cdn in index.html by <script  src="https://cdn.auth0.com/lock-9.0.min.js"></script>
import { Injectable } from '@angular/core';
import {tokenNotExpired} from "angular2-jwt";declare var Auth0Lock:any;@Injectable(/*{providedIn: 'root'}*/)
export class AuthService {clientId ='Kpohf0lVYOVRyK2-QjArHjqCq6kSdelz';domain = 'bittiger.auth0.com';lock = new Auth0Lock(this.clientId,this.domain,{});constructor() {
/*    this.lock.on("authenticated",(authResult)=>{localStorage.setItem('id_token',authResult.idToken);});*/}public login(){/*this.lock.show();*/this.lock.show((error :string, profile:Object , id_token:string ) => {if(error){console.log(error);}else {localStorage.setItem('profile',JSON.stringify(profile));localStorage.setItem('id_token',id_token);}});}public logout(){localStorage.removeItem('id_token');localStorage.removeItem('profile');}public authenticated(){return tokenNotExpired();}
}

  老版本9.0的写法 不是在construction里面判断了,而是改成,在login里面 调用callback function (三个参数),

我们在登录以后

应该在navbar显示名字

还是用cdn吧

https://auth0.com/docs/libraries/lock/v9

变成异步的登录

那么profile怎么弄呢(我们页面显示具体用户名,而不是写死的变量。字符串)

我们去navbar

这个nickname是在我们浏览器按F12点

但是我们要写成异步的,因为,他是个http请求,请求的是auth0这个官网,不然会报null的错误

我们想

这个是固定 的 就不用数据绑定了

转载于:https://www.cnblogs.com/PoeticalJustice/p/9322968.html

16.1 用auth0服务 实现用登录和管理 使用auth版本的2个大坑。相关推荐

  1. 阿里云公布IP地理位置库抄袭调查结果;华为云电脑8月16日将停止服务和运营;Chrome 92发布|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  2. WEB服务在单点登录系统中的应用研究

    WEB服务在单点登录系统中的应用研究 转载于:https://blog.51cto.com/hnoas/105573

  3. Spring Cloud入门-Sentinel实现服务限流、熔断与降级(Hoxton版本)

    文章目录 Spring Cloud入门系列汇总 摘要 Sentinel简介 安装Sentinel控制台 创建sentinel-service模块 限流功能 创建RateLimitController类 ...

  4. 中国重汽微服务管理_springcloud微服务架构实战:商家管理微服务设计

    商家管理微服务设计 商家管理微服务是一个独立的RESTAPI应用,这个应用通过接口服务对外提供商家信息管理.商家权限管理和菜单资源管理等方面的功能. 商家管理微服务开发在merchant-restap ...

  5. linux查看vnc服务加密修复,VNC远程管理Linux服务器安全指导

    在开源领域,远程遥控技术的代表就是VNC了.VNC(Virtual Network Computer,虚拟网络计算机)是一套由AT&T实验室开发的可操控远程计算机的软件.根据主控端与被控端的不 ...

  6. Unbound服务的安装与运行管理

    一.Unbound服务的安装与运行管理 1.获取Unbound软件包 RHEL7.x自带了Bind和Unbound两种DNS服务包,Unbound是红帽公司推荐使用的DNS服务器.目前,虽然Bind在 ...

  7. 传奇服务器包裹元宝数量显示,GOM传奇服务端测试记录元宝,传奇GM版本库测试区记录元宝数量教程...

    GOM传奇服务端测试记录元宝,传奇GM版本库测试区记录元宝数量教程 本文出处:网游动力作者:本站发布时间:2019-09-01阅读次数: [@main] #IF #ACT OPENMERCHANTBI ...

  8. IP-guard如何映射到外网登录访问管理

    终端安全管理(endpoint security management)是一种保护网络安全的策略式方法,它需要终端设备在得到访问网络资源的许可之前遵从特定的标准.随着企业信息化发展,终端安全管理系统需 ...

  9. 微服务服务器集群Session管理演进史

    点击上方"JavaEdge",关注公众号 设为"星标",好文章不错过! 应用服务器的高可用设计主要基于服务无状态这一特性,但事实上,业务总 是有状态: 在电商网 ...

最新文章

  1. Office CVE-2017-8570 远程代码执行漏洞复现
  2. golang中的方法
  3. 项目范围管理:WBS
  4. c编程:输入一个数字n,则n代表n行,每行输入2个数字a,b计算每行的a+b问题。
  5. SQL-Server使用点滴(一-数据对象篇)
  6. debian 升级linux内核,Debian8升级内核到4.5
  7. 问答系统设计的一些思考
  8. java中的文本框_java里的JTextField文本框怎么设置大小?
  9. Android开发笔记(十二)测量尺寸与下拉刷新
  10. 微软神操作!Web 版 VS Code 来了!
  11. C/C++ 取整函数
  12. [原创].Net中绑定到DataView的问题
  13. IBM AI“新药发现”项目停止市场拓展
  14. 解决master[remote rejected] pre-receive hook declined
  15. linux磁盘坏道测试,Linux磁盘坏道检测
  16. CSS篇十六——盒子模型之边框
  17. 计算机检索自考,计算机信息检索02139自考资料(25页)-原创力文档
  18. 跟我学在高德地图——标注我的位置
  19. 2021-08-15nginx访问502,日志报错:connect() to 127.0.0.1:180 failed (13: Permission denied)解决
  20. JAVA通过xml模板生成DOCX文档

热门文章

  1. python中pickle模块的用法_Python中json模块和pickle模块的简单介绍(附示例)
  2. java 解析csv 乱码_Java采用opencsv解析csv文件以及解析中文乱码问题
  3. java父系调用子系,获取usb设备父系或子代
  4. 简历中该怎么写自己了解html,我用HTML写简历
  5. weblogic内存溢出linux,解决weblogic内存溢出有关问题
  6. 自己写的TimeHelper javal时间工具
  7. Windows 7 上安装 Mapnik
  8. Asp.Net验证控件和表达式测试题
  9. alibaba Fastjson的JOSN解析库 -
  10. C#项目评审提问问题集锦