- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我真的希望这是我最近一段时间关于 Stormpath API 的最后一个问题。从 C# 和 PHP 切换到 node 具有一定的挑战性。
我正在尝试在注册页面上实现社交登录。预建选项仅将其放在登录页面上。
呈现页面并将元素添加到 Jade View 非常简单,但我需要获得一个 oauthStateToken。现在我看看 login.js 代码是如何做到这一点的:
var oauth = require('../oauth');
var oauthStateToken = oauth.common.resolveStateToken(req, res);
var formActionUri = (config.web.login.uri + (nextUri ? ('?next=' + nextUri) : ''));
var hasSocialProviders = _.some(config.web.social, function (socialProvider) {
return socialProvider.enabled;
});
extend(options, {
form: form,
formActionUri: formActionUri,
oauthStateToken: oauthStateToken,
hasSocialProviders: hasSocialProviders
});
所以本质上它调用誓言文件并遍历代码,理论上,我可以在 register.js 上做类似的事情 - 本质上(只是示例代码):
var oauth = require('../oauth');
var _ = require('lodash');
var hasSocialProviders = _.some(config.web.social, function (socialProvider) {
return socialProvider.enabled;
});
var oauthStateToken = '';
if (hasSocialProviders) {
oauthStateToken = oauth.common.resolveStateToken(req, res);
}
helpers.render(req, res, view, {
form: helpers.sanitizeFormData(req.body),
formModel: viewModel.form
oauthStateToken : oauthStateToken,
hasSocialProviders: hasSocialProviders
});
但是我当然不想干涉核心文件,并且正在考虑创建一个中间件函数,比如 app.use('/register', callFunction, router);
但我在概念化它的工作原理时遇到了一些困难。我似乎明白 stormpath 如何让我生成一个 oauth token ,我使用 JWT 将其存储为 cookie,但我很难将它组合成工作代码而不复制库中已经存在的大量代码。
我什至可以通过使用 REST API 让它工作,但我想在 express-stormpath 库中使用它。因此,在 express-stormpath 库的上下文中进行一些解释也会很有启发性。或者我是不是想太多了,我应该只 fork 库,对 register.js 进行更改并尝试向上游推送吗?
再次感谢大家,
最佳答案
感谢提问!
我找到了一种在您的应用程序中解决此问题的方法,无需修改 express-stormpath 库。您需要为注册路由添加路由处理程序,在该路由处理程序中,您必须手动完成工作以获取 oAuthStateToken
设置,然后调用 next()
让 express-stormpath 继续处理注册页面的请求。这是它的样子:
var cookieParser = require('cookie-parser');
var oauth = require('express-stormpath/lib/oauth');
// create your express server, 'app'
app.use('/register', cookieParser(), function (req, res, next) {
var oauthStateToken = oauth.common.resolveStateToken(req, res);
req.app.get('stormpathConfig').templateContext = {
oauthStateToken: oauthStateToken
};
next();
});
app.use(stormpath.init(app, {
// .. other config options
web: {
register: {
view: 'views/register.jade' // path to your custom registration file
}
}
}));
希望对您有所帮助!这当然可以更容易,这是对库的一个很好的功能请求。
关于javascript - Stormpath 注册页面上的社交登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37074483/
在我有一个在服务器上运行的 Node 项目之后,我发布了一个较早的问题(“What do I need to know to transfer a working Node project?”),但在
我过去使用过 googles youtube api,它提供了一种简单的方法来检查您在设定的时间段内(例如一个月)进行了多少次 api 调用,我想知道 stormpath 是否提供任何类似的服务。我似
我正在尝试在成功服务的 aws linux 实例上运行 express-stormpath。我已经对我的 key 和应用程序 href 进行了双重和三次检查,并确保它们已连接到应用程序。我去了一个新的
我正在考虑使用 Stormpath 和它的 Java API 作为用户存储。 看起来不错,只是我无法搜索用户。 例如,我收到此错误: Exception in thread "main" com.st
我正在尝试在 Heroku 应用程序上使用 express-stormpath。我正在关注文档here,我的代码非常简单: var express = require('express'); var
使用express和react Stormpath库,我有一个相当独特的用例: 成功注册后,用户将自动登录并询问一些问题。根据用户给出的答案,然后以编程方式将用户添加到特定的 Stormpath 组。
尝试让 stormpath 在我的 expressJS 应用程序中工作时出现特殊错误。我已经设置了一个 stormpath 应用程序并获得了我生成的 API key 。 console.log 在我的
我正在使用带有 node.js 的 express-stormpath 来设置后端服务器。这是我的 server.js 代码片段,我在其中抛出错误 - app.use(stormpath.init(a
我正在使用 Jersey 构建 Java REST API。 Tomcat 是我的网络服务器。对于用户帐户和 OAuth2 key 管理,我使用的是 Stormpath 的 Java SDK。我已经通
是否可以搜索帐户的自定义数据以查找数组中包含的值? 类似于: ?customData.[arrayName].{key}=value Stormpath docs不要提到数组搜索。 最佳答案 是的,用
是否可以搜索帐户的自定义数据以查找数组中包含的值? 类似于: ?customData.[arrayName].{key}=value Stormpath docs不要提到数组搜索。 最佳答案 是的,用
我从客户端获取 JSON 数据,并希望使用 node.js 和 express.js 将其保存到 Stormpaths 自定义数据: 我有我的基本发布路线: app.post('/post', sto
在 express-stormpath 中,成功验证电子邮件后运行某些代码的最佳方式是什么? postRegistrationHandler 接近,但在电子邮件验证之前被调用。 最佳答案 我们还没有这
我有一个使用 Stormpath 保护的应用程序。到目前为止,基本的注册/登录过程运行良好。 我现在已经添加了社交身份验证,但遇到了问题。按照目前的配置方式,它将允许使用相同的电子邮件地址创建两个同时
我真的希望这是我最近一段时间关于 Stormpath API 的最后一个问题。从 C# 和 PHP 切换到 node 具有一定的挑战性。 我正在尝试在注册页面上实现社交登录。预建选项仅将其放在登录页面
使用 Flask-Stormpath pip。这是设置 app.config['STORMPATH_APPLICATION'] = my_app_name 我在 docs 中没有看到任何 STORMP
我正在构建一个使用收藏夹功能的 Web 应用程序。该 Web 应用程序是使用 Node 和 Express.js 构建的,并使用 Stormpath API 进行用户管理。为了实现此功能,我需要访问某
我使用 请求了stormpath用户自定义数据 res.render('home', { title: 'home', user: req.user.customData, }); 我期望收到自定义数
我正在尝试学习如何将stormpath与express一起使用。我有一个使用 yeoman 和 Angular-fullstack 生成器生成的全栈 Angular/Node 项目。我登录、注册并忘记
我绝对遵循了 google guide 到字母和 stormpath guide for integrating with google 也给字母 现在,用户可以成功登录 Google,但是 Stor
我是一名优秀的程序员,十分优秀!