2017-05-22 2 views
0

iOSアプリケーションがあり、ログインしていくつかのユーザーデータを表示する必要があります... 追加の編集については、ページにURLリンクがあります。プロパティ、...しかし、実際にアプリケーションにログインしている場合、ユーザーがページ内にログインするのは面倒です。Swift:Safariアプリケーション用のカスタムCookieを設定する

このため、HTTPCookieStorageにカスタムCookieを保存する必要があります。そのため、ユーザーがページに移動すると認証Cookieが設定されるようになります。

キー値でカスタムCookieを作成し、ユーザーが自分のページに移動したときにSafariで使用するように保存するにはどうすればよいですか?

EDIT


私はより良い私の状況を理解するために多くの情報を提供します。

私は自分のアプリ内に1つのボタンがあります。

このボタンをクリックすると、APIを呼び出して有効なトークンを取得します。 トークンを受け取った後、このトークンをクッキーとして保存する必要があります。これを行う「サーバー」の方法は、

localStorage.setItem('token', this.token) 

です。このトークンをHTTPCookieStorageに保存した後、私は自分のページを開きます。

​​

ページでは、トークンCookieが検索されます。クッキーが存在する場合はWebアプリを開き、それ以外の場合はログインページを表示します。

私の目標はログインページを開くことを防ぐことです。

答えて

-1

ストアクッキー:

func storeCookies() { 
    let cookiesStorage = HTTPCookieStorage.shared 
    let userDefaults = UserDefaults.standard 

    let serverBaseUrl = "http://example.com" 
    var cookieDict = [String : AnyObject]() 

    for cookie in cookiesStorage.cookies(for: NSURL(string: serverBaseUrl)! as URL)! { 
     cookieDict[cookie.name] = cookie.properties as AnyObject? 
    } 

    userDefaults.set(cookieDict, forKey: "cookiesKey") 
} 

を取得します。

func restoreCookies() { 
    let cookiesStorage = HTTPCookieStorage.shared 
    let userDefaults = UserDefaults.standard 

    if let cookieDictionary = userDefaults.dictionary(forKey: "cookiesKey") { 

     for (_, cookieProperties) in cookieDictionary { 
      if let cookie = HTTPCookie(properties: cookieProperties as! [HTTPCookiePropertyKey : Any]) { 
       cookiesStorage.setCookie(cookie) 
      } 
     } 
    } 
} 
+1

なぜ[以前同じ答えを繰り返し](http://stackoverflow.com/a/43980792/1187415) ?あなたがその質問が尋ねられ、それ以前に答えられたと思うなら、あなたはそれを重複としてフラグを立てることができます。 –

+1

申し訳ありませんが、私はこの回答が私の質問にどのように表示されないのですか?あなたのコードはすでに設定されたクッキーをuserDefaultsに保存した後、ユーザーのデフォルトからcookiesStorageに戻ります。新しいカスタムCookieをどこに追加できるのか分かりません。 –

+0

@MartinR投稿者の所有者が質問を削除することがあるからです。その後、答えはもはやアクセスできなくなります。 –

関連する問題