小编mic*_*b91的帖子

使用Go和AngularJS进行用户身份验证

我想在Go应用程序上设置一个带有令牌的身份验证系统,它使用AngularJS前端.

我正在寻找的是关于创建安全系统的所有步骤的建议.这是我的步骤:

我们将考虑用户条目已写入我们的数据库.

1 - 用户想要登录

用户转到Web应用程序的索引,提示他登录.

使用我的app.yaml文件,我声明我的HTML文件具有AngularJS前端的依赖项:

application: authtest
version: 1
runtime: go
api_version: go1

handlers:
- url: /
  static_files: frontend/index.html
  upload: frontend/(.*\.html)

- url: /js
  static_dir: frontend/js

- url: /.*
  script: _go_app
Run Code Online (Sandbox Code Playgroud)

视觉:

替代文字

码:

<form ng-submit="signIn()" ng-controller="signInCtrl">
    <input type="email" ng-model="credentials.email" placeholder="Email" name="email">
    <input type="password" ng-model="credentials.password" placeholder="Password" name="password">
    <input type="submit" value="Sign in">
</form>
Run Code Online (Sandbox Code Playgroud)

用户输入其凭据,然后单击" 登录"按钮.

2 - 请求服务器

AngularJS模块代码:

<script>
    angular.module('authtest', ['ngCookies'])
    .controller('signInCtrl', ['$scope', '$http', '$window', '$cookieStore', '$route', function($scope, $http, …
Run Code Online (Sandbox Code Playgroud)

authentication token go angularjs

7
推荐指数
1
解决办法
3378
查看次数

Amazon S3:使用符号拒绝访问 URL

我想下载一些上传到我的 S3 服务器上的文件。

目前,我所有的存储桶和其中的文件都是公开的,所以我可以下载我想要的。不幸的是,我无法使用空格或“&”等特殊字符访问文件...

我尝试通过 HTML 代码更改 URL 中的特殊字符:

http://s3-eu-west-1.amazonaws.com/custom.bucket/mods/b&b.jar
Run Code Online (Sandbox Code Playgroud)

经过

http://s3-eu-west-1.amazonaws.com/custom.bucket/mods/b%26b.jar
Run Code Online (Sandbox Code Playgroud)

但我总是有同样的错误:

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>3E987FCE07075166</RequestId>
    <HostId>
        O2EIujdbiAeYg44rsezQlargfT7qVSL8SpqbTxkd/1UwxQrwZ3SJ+R3NlHyGF7rI
    </HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

任何人都可以解决这个问题?

我无法重命名它们,因为它们已被其他应用程序使用。

url amazon-s3 special-characters access-denied amazon-web-services

6
推荐指数
1
解决办法
1万
查看次数

从画布保存图像时缺少扩展名

我使用此代码在Javascript中保存图像:

window.location.href = grid.toDataURL("image/png").replace("image/png", "image/octet-stream");
Run Code Online (Sandbox Code Playgroud)

代码有效,但保存的文件没有任何扩展名,我必须手动重命名.

我的问题是如何将扩展放在最后?

谢谢.

javascript base64 canvas image todataurl

5
推荐指数
1
解决办法
4226
查看次数

使用AngularJS和Express的错误CSRF令牌

我想在我的应用程序中添加一个使用MEAN堆栈的CSRF保护.

我尝试了某人已经给出的答案:ExpressJS中的CSRF保护

但这是旧的快递版本,所以我做了一些改变:

app.use(cookieParser(config.cookieSecret, { httpOnly: true }));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(session({ secret: config.sessionSecret, resave: false, saveUninitialized: true }));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
app.use(csrf({value: function(req) {
        var token = (req.body && req.body._csrf)
            || (req.query && req.query._csrf)
            || (req.headers['x-csrf-token'])
            || (req.headers['x-xsrf-token']);
        return token;
    }
}));
app.use(function(req, res, next) {
  res.cookie('XSRF-TOKEN', req.csrfToken());
  next();
});
Run Code Online (Sandbox Code Playgroud)

我可以看到XSRF-TOKEN我的应用程序(使用Chrome检查)生成了很好的生成名称.

但是当我发布一个表单(Angular frontend)时,我有一个关于令牌的错误:

{"message":"invalid csrf token","error":{"expose":true,"code":"EBADCSRFTOKEN","statusCode":403,"status":403}}

我错过了什么 ?我想知道是否req.csrfToken()生成Angular给出的好令牌......

编辑:

我只是看到XSRF-TOKENAngularJS $http请求中使用.所以我想我必须在我的表单中添加一个隐藏的输入来发布csrf值,由Express检查,但是如何?

cookies csrf express angularjs passport.js

4
推荐指数
1
解决办法
5320
查看次数