标签: auth0

Rails:迁移到 Auth0,同时保留 postgres 记录和关联

我的项目目前用于has_secure_password处理用户(类似于这个railscast)。一切正常,但展望未来,我觉得切换到 Auth0 会带来好处,并希望在太多用户注册之前立即进行转换。

用户被保存到具有多个关联(签入/评论/等)的用户模型中。如何将 Auth0 用户链接到我的数据库中的用户记录。我想我可以在他们登录后通过电子邮件查找(因为它们将是唯一的)或 Auth0 用户 ID(并向用户表中添加一个新列)。似乎我可以简单地使用 Auth0 登录回调来登录用户(使用我当前的会话控制器),但是当在 OmniAuth 中创建用户时,如何在我的数据库上创建用户。是否也有回调?

在一个完美的世界中,我想做这样的事情:

  1. 用户使用 Auth0 锁进行注册。在 Auth0 数据库上创建一个新帐户。
  2. 回调会在我的数据库中触发一条新记录,该记录包含来自 Auth0 的所有信息并具有关联列。
  3. 用户登录并且他们的 user_id(来自我的数据库)存储在会话中。
  4. 用户对个人信息(姓名/电子邮件/等)所做的更改在两个数据库上都会发生更改。

我想要的可能吗?或者我应该坚持我当前的身份验证?

authentication data-migration ruby-on-rails ruby-on-rails-5 auth0

0
推荐指数
1
解决办法
650
查看次数

Angular2 - 找不到名称 - 构造函数、公共、路由器

我正在尝试配置 auth0 API。最后我做到了,昨天它起作用了。今天不是 - 但我没有改变任何代码 - 我在 WebStorm 中有文件历史记录。

看起来问题出在

构造函数(公共路由器:路由器)

这是我的配置:

@angular/cli: 1.0.0
node: 7.7.3
os: win32 x64
@angular/common: 2.4.10
@angular/compiler: 2.4.10
@angular/core: 2.4.10
@angular/forms: 2.4.10
@angular/http: 2.4.10
@angular/platform-browser: 2.4.10
@angular/platform-browser-dynamic: 2.4.10
@angular/router: 3.4.10
@angular/cli: 1.0.0
@angular/compiler-cli: 2.4.10
Run Code Online (Sandbox Code Playgroud)

auth.service.ts

import { Injectable }      from '@angular/core';
import { tokenNotExpired } from 'angular2-jwt';
import { myConfig }        from './auth.config';

// Avoid name not found warnings
declare var Auth0Lock: any;

@Injectable()
export class Auth {
  // Configure Auth0
  lock = new Auth0Lock(myConfig.clientID, …
Run Code Online (Sandbox Code Playgroud)

typescript auth0 angular

0
推荐指数
1
解决办法
5828
查看次数

Angular(5) - 登录成功登录后,登录按钮不会更改为Logout

我正在使用Auth0的API来处理用户管理.一切都按预期工作 - Login()正确存储本地.在Logout()它上面正确删除它们.

但是,实际Login按钮不会Logout自动成功 - 这是我硬刷页面时,而不是直接刷新页面.我相信这是我绑定的问题?

标题组件

  authenticated: boolean; // Wasn't sure how else to filter in front-end

  constructor(private authService: AuthService) { }

  ngOnInit() {
    this.authenticated = this.authService.isAuthenticated()
  }



  login() {
    this.authService.login();
  }

  logout() {
    this.authService.logout();
  }

}
Run Code Online (Sandbox Code Playgroud)

用于标题的HTML

  <li class="nav-item">
    <a class="nav-link waves-light" *ngIf="!authenticated" mdbRippleRadius (click)="login()"><i class="fa fa-user"></i> <span class="clearfix d-none d-sm-inline-block">Log In</span></a>
    <a class="nav-link waves-light" *ngIf="authenticated" mdbRippleRadius (click)="logout()"><i class="fa fa-user"></i> <span class="clearfix d-none d-sm-inline-block">Log Out</span></a>
  </li>
Run Code Online (Sandbox Code Playgroud)

文档说使用auth.isAuthenticated()哪个将从服务调用该函数

  public isAuthenticated(): …
Run Code Online (Sandbox Code Playgroud)

rxjs auth0 angular

0
推荐指数
1
解决办法
838
查看次数

在 AWS Lambda 中维护会话状态

如何在AWS Lambda 中维护会话状态?例如,如果我需要查询DynamoDb以获取登录用户的订阅信息,如果用户使用的是AngularJS Web 应用程序,我该如何从 Lambda 函数执行此操作?

我让用户使用Auth0登录,并有一个在 AWS 上验证用户的自定义授权方。但后来我想使用登录用户CognitoID来查询 DynamoDB。

根据 Lambda (node.js) ( https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html ) 的AWS 文档,您只有有关 Amazon Cognito 身份的信息通过 AWS 移动开发工具包调用时提供程序。

identity.cognitoIdentityId

identity.cognitoIdentityPoolId
Run Code Online (Sandbox Code Playgroud)

但是如果我使用一个使用 AngularJS 和 Auth0 的网络应用程序呢?

好吧,也许在 DynamoDB 中存储用户信息的最简单的解决方案就是在客户端提取JWT,在 AngularJS 中,然后将提取的 Auth0(user_id例如)facebook|12345在 API 请求中发送到 Lambda,Lambda 查询用户是否DynamoDB 中存在,如果不存在则创建新记录。

然后,在对必须查询用户信息的 API 的每个请求中,我发送user_id并在 Lambda 中使用该 ID 查询数据库。这应该是安全的,因为我在自定义授权方验证用户令牌并在请求到达 Lambda 之前拒绝或允许请求。

lambda amazon-web-services aws-lambda auth0

0
推荐指数
1
解决办法
2407
查看次数

加密 js r.randomBytes 不是函数

尝试使用离子设置 auth0 时遇到问题。

但是,我认为它与它无关,它更像是一个加密 js / 配置问题。

这是我得到的错误:

main.7c4444f936ddaf5620f8.bundle.js:formatted:15919 ERROR Error:

Uncaught (in promise): TypeError: r.randomBytes is not a function

TypeError: r.randomBytes is not a function at n.generateProofKey (main.7c4444f936ddaf5620f8.bundle.js:formatted:844)

下面是我的加密 js 文件:

import * as crypto from 'crypto-js';

function base64UrlSafeEncode(string) {
  return string.toString('base64')
      .replace(/+/g, '-')
      .replace(/\//g, '_')
      .replace(/=/g, '');
}

function sha256(buffer) {
  return crypto.createHash('sha256').update(buffer).digest();
}

exports.generateProofKey = function generateProofKey() {
  var codeVerifier = base64UrlSafeEncode(crypto.randomBytes(32)); 
  var codeChallenge = base64UrlSafeEncode(sha256(codeVerifier)); 
  return { codeVerifier: codeVerifier, codeChallenge: codeChallenge };
};

exports.generateState = function …
Run Code Online (Sandbox Code Playgroud)

javascript cryptojs webpack auth0 angular

-3
推荐指数
1
解决办法
9894
查看次数